如何创建一个 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] 的总和。