我想实现一个递归函数在向量v添加奇数总结了所有的奇数。 到目前为止,这是我尝试Matlab递归。在矢量
function result = sumOdd(v)
%sum of odd numbers in a vector v
%sumOdd(v)
n = 1;
odds = [];
if length(v) > 0
if mod(v(n),2) == 1
odds(n) = v(n);
v(n) = [];
n = n + 1;
sumOdd(v)
elseif mod(v(n),2) == 0
v(n) = [];
n = n + 1;
sumOdd(v)
end
else
disp(sum(odds))
end
end
这并不工作,并返回一个值为零。我是编程和递归新手,想知道我做错了什么。
谢谢。
你必须使用递归吗?在matlab中使用逻辑索引有很多更好的方法。 – Daniel
你永远不会给'result'分配任何东西,你永远不会得到你的递归调用返回的东西。 – Daniel
是的,它必须通过递归来完成。 –