有沒有什麼辦法在自定義步驟中使用MATLAB中的for-loop?我想要做的是遍歷所有小於給定數字的2的權力。在C等效迴路++(例如)將是:For循環與MATLAB中的乘法步驟
for (int i = 1; i < 65; i *= 2)
注1:這是一種迭代的for循環最適合,所以我想不使用while循環。
注2:我實際上使用的是八度,而不是MATLAB。
有沒有什麼辦法在自定義步驟中使用MATLAB中的for-loop?我想要做的是遍歷所有小於給定數字的2的權力。在C等效迴路++(例如)將是:For循環與MATLAB中的乘法步驟
for (int i = 1; i < 65; i *= 2)
注1:這是一種迭代的for循環最適合,所以我想不使用while循環。
注2:我實際上使用的是八度,而不是MATLAB。
也許你想沿着
for i=2.^[1:6]
disp(i)
end
線的東西,除非你將需要弄清楚指數的範圍。這使用的事實是,因爲 a_(i+1) = a_i*2
這可以被重寫爲a_i = 2^i
。
否則,你可以不喜歡以下
i=1;
while i<65
i=i*2;
disp(i);
end
可以遍歷任何載體,所以你可以使用矢量操作來創建你的價值觀的載體,你開始你的循環之前。在第一個100張平方數迴路,例如,可以寫像這樣:
values_to_iterate = [1:100].^2;
for i = values_to_iterate
i
end
或者你可以循環遍歷向量values_to_iterate
每個位置(這給出了相同的結果,但有如下益處i
跟蹤你有多少次迭代完成的 - 如果你是從各個線圈依次寫一個結果到輸出向量),這是有用的:
values_to_iterate = [1:100].^2;
for i = 1:length(values_to_iterate)
values_to_iterate(i)
results_vector(i) = some_function(values_to_iterate(i));
end
更簡潔,你可以寫第一個例子是簡單的:
for i = [1:100].^2
i
end
與C不同的是,從一個值到下一個值不一定是'規則'。 迭代的矢量可以是完全任意的:
for i = [10, -1000, 23.3, 5, inf]
i
end