任意の行に戻る方法

18 ビュー (過去 30 日間)
Takaki Fujii
Takaki Fujii 2018 年 12 月 6 日
回答済み: Aoi Midori 2018 年 12 月 6 日
以下のようなコードを組んでおり、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

採用された回答

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

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeループと条件付きステートメント についてさらに検索

Community Treasure Hunt

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

Start Hunting!