for文を一度抜け出し,再度途中からそのfor文に入る方法
37 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
翔 池田
le 17 Oct 2021
Réponse apportée : Atsushi Ueno
le 17 Oct 2021
ある時間のfor 文を用いて計算を行います.
ある値をとると,過去の時間tpastから再度for文に入る方法をお教えていただきたいです.
具体的には,
ある時間ループのfor文があります.
for t = t_start : t_end
%様々な計算により以下の時間を算出
t_again=tm
end
この次の時間ループから
for t = t_again : t_end
end
としたいです.
0 commentaires
Réponse acceptée
Atsushi Ueno
le 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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur ループと条件付きステートメント dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!