【发布时间】: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 中重复循环中的步骤?
例如,如果为 n(循环索引)给出的值不符合我的预期,我想用 n 再次重复该步骤,但已经更改了一些内容。
我试过了:
在 for 的步骤之外放一段时间,比如
for n=1:N-1
while chkstep == 1 do
(....)
end
end
在时间步结束时减少n:
for n=1:N-1
(....)
n=n-1;
end
【问题讨论】:
我不确定您的第一个解决方案有什么问题,它应该像您描述的那样工作。但是您也可以将while 用于外部循环,并且仅当您对当前步骤感到满意时才增加计数器n。
类似:
n = 1
while (n<N)
while chkstep == 1 do
(....)
end
n = n+1 ;
end
注意您的第二个解决方案:Matlab for 循环是静态,从循环内更改 n 不会改变循环运行的次数。
【讨论】:
这个怎么样
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
【讨论】: