필터 지우기
필터 지우기

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

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

채택된 답변

Atsushi Ueno
Atsushi Ueno 2021년 10월 17일
>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개)

카테고리

Help CenterFile Exchange에서 ループと条件付きステートメント에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!