2014-05-06 207 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