我想實現一個遞歸函數在向量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
是的,它必須通過遞歸來完成。 –