如何创建一个 Octave 函数来仅评估向量中的奇数之和?
How to create an Octave function for evaluating sum of odd numbers in the vector only?
我像这样在 Octave 上创建了一个函数文件,
function y = sum_odd(n)
if rem(n,2) ==1
sum_odd = sum(n)
endif
endfunction
我想让函数计算每个向量中奇数的总和。
但是当我尝试 sum_odd([1 2 3]) 时,它没有为我计算。
有解决此问题的想法吗?
您可以简单地使用 logical indexing:
function y = sum_odd(n)
y = sum(n(rem(n,2)==1))
end
rem([1 2 3],2)==1)
returns 逻辑数组:[1 0 1]
。
n(logical([1 0 1])) returns
[1 3]`。
sum(n(rem([1 2 3], 2) == 1))
returns [1 3]
的总和。
我像这样在 Octave 上创建了一个函数文件,
function y = sum_odd(n)
if rem(n,2) ==1
sum_odd = sum(n)
endif
endfunction
我想让函数计算每个向量中奇数的总和。 但是当我尝试 sum_odd([1 2 3]) 时,它没有为我计算。
有解决此问题的想法吗?
您可以简单地使用 logical indexing:
function y = sum_odd(n)
y = sum(n(rem(n,2)==1))
end
rem([1 2 3],2)==1)
returns 逻辑数组:[1 0 1]
。n(logical([1 0 1])) returns
[1 3]`。sum(n(rem([1 2 3], 2) == 1))
returns[1 3]
的总和。