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

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

Risposta accettata

Atsushi Ueno
Atsushi Ueno il 17 Ott 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

Più risposte (0)

Categorie

Scopri di più su ループと条件付きステートメント in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!