Matlab:在循环中更新最大计数不起作用

时间:2016-05-23 12:01:14

标签: matlab loops

我在MATLAB中执行了这个简单的循环脚本

clc;clear; close all;
m = 100;
for i = 1:m
    if(i == 2)
        m = 1000;
    end
end 

并发现,'我'只循环到'100'但不是'1000'。为什么..?

2 个答案:

答案 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>