【问题标题】:Repeating a step in a loop在循环中重复一个步骤
【发布时间】:2014-05-07 03:32:35
【问题描述】:

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

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

我试过了:

  • 在 for 的步骤之外放一段时间,比如

    for n=1:N-1
      while chkstep == 1 do
       (....)
      end
    end
    
  • 在时间步结束时减少n:

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

【问题讨论】:

    标签: matlab loops for-loop


    【解决方案1】:

    我不确定您的第一个解决方案有什么问题,它应该像您描述的那样工作。但是您也可以将while 用于外部循环,并且仅当您对当前步骤感到满意时才增加计数器n

    类似:

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

    注意您的第二个解决方案:Matlab for 循环是静态,从循环内更改 n 不会改变循环运行的次数。

    【讨论】:

      【解决方案2】:

      这个怎么样

      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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-09-29
        • 1970-01-01
        • 1970-01-01
        • 2013-04-19
        • 1970-01-01
        • 1970-01-01
        • 2014-07-08
        相关资源
        最近更新 更多