0
這種計算的目的是取一個值(a
),並對其執行兩個計算的一個用於循環的每個迭代。每個順序循環都會採用新的計算值並重新計算它。我想保留每個循環的輸出值。下面是一個例子,使用邏輯陣列來決定使用通過每個5環,其計算:MATLAB - 如何爲環狀計算每次迭代創建輸出
a = 0;
b = logical([1 0 1 1 0]);
for i = 1:length(b)
if b(i) == 1
a = 1*2 + a*2
else
a = a*3
end
end
這個實例不正確的,因爲它僅用於a
而非5.從期望的結果返回1個值這個例子是:
a = 2 6 14 30 90
請幫助我,並修改其他任何錯誤在這裏。非常感謝。
一對夫婦Matlab的慣用項目:'numel(B)'會比'長度比較合適的(B)'。通常你會做'a(end + 1)= a_next'而不是'a = [a,a_next]'。最好將輸出預分配爲'a = NaN([1 numel(b)+1]); a(1)= 0;'然後使用'a(i + 1)= a_next'分配給'a',以避免在循環的每次通過時整個數組的低效重新分配。 – 2014-12-06 01:44:00