我都執行這個簡單的循環腳本在MATLABMatlab的:更新一個循環最大計數不起作用
clc;clear; close all;
m = 100;
for i = 1:m
if(i == 2)
m = 1000;
end
end
,結果發現,「我」只循環直到「100」,但不是「1000」。爲什麼..??
我都執行這個簡單的循環腳本在MATLABMatlab的:更新一個循環最大計數不起作用
clc;clear; close all;
m = 100;
for i = 1:m
if(i == 2)
m = 1000;
end
end
,結果發現,「我」只循環直到「100」,但不是「1000」。爲什麼..??
語句for i=1:m
將數組1:m
分配給運算符在循環中將採用的值列表。當循環開始執行時會發生這種情況(注意:您可以使用任何數組,並且它將逐列處理; for letter='abcde';fprintf('%s\n',letter);end
工作正常)。
如果要調整多久你的循環將通過迭代,我建議使用while
循環:
ct = 1;
maxIterations = 100;
success = false;
while ~success
fprintf('iteration %i/%i\n',ct,maxIterations);
ct = ct + 1;
if ct == 2
maxIterations == 1000;
end
if ct > maxIterations
success = true;
end
end
好吧,我試過這個(類似於您的想法) 'm = 100; i = 0; (i
我不是專家,但在100 for循環替換m個變種第一次運行,然後它執行從1到100(不是1到m)的循環,它不檢查每次運行什麼是m它知道m是100,它運行直到它達到100,例如,如果你的腳本是這樣的:
<code>
m=100;
for i=1:m (m is 100)
if(i==2)
m=1000;
for i=1:m (m is 1000)
a=xyz;
end
end
end
</code>
我會說,一個while循環是這裏的解決方案。你可能不想重申,以防我== 2 ... – patrik
閱讀[for](http://se.mathworks.com/help/matlab/ref/for.html),especiall Ÿ最後一節。 _避免爲循環語句中的索引變量賦值。 for語句會覆蓋循環內對索引所做的任何更改._ –
這是您真正想要的嗎?或者你真的想要做其他事情嗎? – Bernhard
@Bernhard:是的,這是我想要的。 :) –