2014-05-06 107 views
0

如何在MatLab的循环中重复一个步骤?在循环中重复一个步骤

例如,如果为n(循环索引)给出的值不符合我的期望,我想用n再次重复该步骤,但改变了某些内容。

我想:

  • 放一段时间的步骤之外,像

    for n=1:N-1 
        while chkstep == 1 do 
        (....) 
        end 
    end 
    
  • 当时步骤结束增大或减小n:

    for n=1:N-1 
         (....) 
         n=n-1; 
    end 
    

回答

1

我不确定什么是wr与您的第一个解决方案一起,它应该按照您的描述工作。但是您也可以使用while作为外部循环,只有当您对当前步骤满意时才会增加计数器n

喜欢的东西:

n = 1 
while (n<N) 
    while chkstep == 1 do 
     (....) 
    end 
    n = n+1 ; 
end 

注意到关于你的第二个解决方案:Matlab的for循环是静态,从内环路改变n不会改变时间的循环将运行数。

0

这个怎么样

for n = 1:N-1 

    check = true; 
    notChanged = true; 

while check 
    (..Do your thing..) 

    if (n ~= goodValue && notChanged) 
      (...make the change...) 
      notChanged = false; 
      continue; 
    end 

    break; 
end 
end