我在MATLAB中执行了这个简单的循环脚本
clc;clear; close all;
m = 100;
for i = 1:m
if(i == 2)
m = 1000;
end
end
并发现,'我'只循环到'100'但不是'1000'。为什么..?
答案 0 :(得分:4)
语句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
答案 1 :(得分:-2)
我不是专家,但是for循环在第一次运行中将m var替换为100,然后它执行从1到100(不是1到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>