for文を一度抜け出し,再度途中からそのfor文に入る方法
20 views (last 30 days)
Show older comments
ある時間のfor 文を用いて計算を行います.
ある値をとると,過去の時間tpastから再度for文に入る方法をお教えていただきたいです.
具体的には,
ある時間ループのfor文があります.
for t = t_start : t_end
%様々な計算により以下の時間を算出
t_again=tm
end
この次の時間ループから
for t = t_again : t_end
end
としたいです.
0 Comments
Accepted Answer
Atsushi Ueno
on 17 Oct 2021
>for文を一度抜け出し,再度途中からそのfor文に入る方法
for文を一度抜け出すにはbreak文を実行します。ループ内で何らかの条件成立時にbreakを実行するのが常套手段です。再度途中からfor文に入る事はできません。より外のループを1周して一度出たfor文に戻って来ても再び開始時間t_startから実行されてしまいます。
>ある値をとると,過去の時間tpastから再度for文に入る方法
C言語ではループ内でiterator変数を書き換える事が出来ます(バグを生みやすいので推奨されない方法です)が、MATLABのfor文ではこれが許されません。while文の中でiterator変数やカウント処理、カウント満了判定を自分で書いて実装するのが一つの方法、もしくは下記の様な方法でどうでしょうか
t_again = t_start; % 初回のみ
while(true)
for t = t_again : t_end
tm = ...
...
if(something_happen) % ループを抜け出す条件が成立
t_again = tm; % 様々な計算により以下の時間を算出
break; % より内側のループを1層抜け出す
end
end
if t >= t_end
break; % for文を途中で抜け出さず最後まで回ったらwhileを抜け出す
end
end
0 Comments
More Answers (0)
See Also
Categories
Find more on ループと条件付きステートメント in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!