MATLAB Answers

1

任意の行に戻る方法

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

  0 件のコメント

サインイン to comment.

1 件の回答

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 件のコメント

サインイン to comment.