任意の行に戻る方法

20 views (last 30 days)
Takaki Fujii
Takaki Fujii on 6 Dec 2018
Answered: Aoi Midori on 6 Dec 2018
以下のようなコードを組んでおり、goto functionを使って任意の行の操作に戻って繰り返し計算を試みていますが、うまくいきません。調べたところ、while文を使っても出来るらしいですがどのようにすればよいでしょうか。
アドバイスをお願いします。コードをそのまま貼ったので、変数名等分かりづらい部分も多いかと思いますが、やろうとしていることをコメントアウトしました。
よろしくお願いします。
%現在時刻のデータの取得
namimuki=240
yyyy=2012;mm=11;dd=30;hh=18;%現在時刻
date_next=(yyyy)*1000000+(mm)*10000+(dd)*100+(hh);%現在時刻のデータ
for j=2:83%j=83となった時に計算を終了したいです。
Cg=dlmread(['Cg_',num2str(date_next),'.txt'],'',0,0);%現在時刻のデータを取得
Cg(Cg<0)=0;
matrixlonlat=dlmread(['matrixlonlat',num2str(namimuki),'.txt'],'',0,0);%計算に必要な準備、特に意味はないです
distance=dlmread([num2str(namimuki),'distance.txt'],'',0,0);%計算に必要な準備、特に意味はないです
matrixlat=matrixlonlat(:,1);%計算に必要な準備、特に意味はないです
matrixlon=matrixlonlat(:,2);%計算に必要な準備、特に意味はないです
Cg_next=Cg(matrixlat(j,:),matrixlon(j,:));%matrixlonlatとdistanceというデータが83行(j行)まであります。
time=round(distance(j)*1000./Cg_next/3600);%計算
%次点の時刻
jikoku_now=datetime([yyyy,mm,dd]) + hours(hh);
jikoku_next=jikoku_now-hours(time);%時刻の計算
jikoku_next=datevec(jikoku_next');%時刻の計算
year=jikoku_next(:,1);%時刻の計算
month=jikoku_next(:,2);%時刻の計算
day=jikoku_next(:,3);%時刻の計算
hour=jikoku_next(:,4);%時刻の計算
format long
date_next=year*1000000+month*10000+day*100+hour%次の時刻-ここを上のdate_nextに入れて繰り返し計算を行いたいです。
save(['time',num2str(date_next),'.txt']);
goto 11%Cg=dlmread(['Cg_',num2str(date_next),'.txt'],'',0,0);の行に飛ばしたいです
return
end

Accepted Answer

Aoi Midori
Aoi Midori on 6 Dec 2018
Takaki Fujiiさん、
for文下部の、以下の2行を消すことで、for文の機能によりj=83になった時に計算終了されないでしょうか?
goto 11%Cg=dlmread(['Cg_',num2str(date_next),'.txt'],'',0,0);の行に飛ばしたいです
return
私の質問に対しての認識が誤っていたらすみません。

More Answers (0)

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!