for文を一度抜け出​し,再度途中からその​for文に入る方法

21 views (last 30 days)
翔 池田
翔 池田 on 17 Oct 2021
Answered: Atsushi Ueno on 17 Oct 2021
ある時間のfor 文を用いて計算を行います.
ある値をとると,過去の時間tpastから再度for文に入る方法をお教えていただきたいです.
具体的には,
ある時間ループのfor文があります.
for t = t_start : t_end
%様々な計算により以下の時間を算出
t_again=tm
end
この次の時間ループから
for t = t_again : t_end
end
としたいです.

Accepted Answer

Atsushi Ueno
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

More Answers (0)

Categories

Find more on ループと条件付きステートメント in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!