- 締切済み
プログラムについて(matlab)
matlabで以下のプログラムを実行しているのですが、 グラフが表示されません。 何故でしょうか、、。 ----------------------------------------- t=10 for r=400:1:2000 %波長 if 400<= r <700 y= 18*t.^(0.75); elseif 700<= r <1050 y= 18.*t.^(0.75).*10.^(0.002.*(r-700)); elseif 1050<= r <1150 y= 90*t.^(0.75)*1*1; elseif 1150<= r <1200 y= 90.*t.^(0.75).*1.*10.^(0.018.*(r-1150)); elseif 1200<= r <1400 y= 90*t.^(0.75)*1*8; elseif 1400<= r <1500 y= 5600*t.^(0.25); end plot(r,y) end ------------------------------------------------------ お詳しい方よろしくお願いします.
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- masudaya
- ベストアンサー率47% (250/524)
何がわるいかよく分かりませんが, とりあえず,表示するようにしました. t=10; r=400:699; y= 18*t.^(0.75)*sign(r); plot(r,y) hold on r=700:1059; y=18*t^(0.75)*10.^(0.002*(r-700)); plot(r,y) r=1050:1149; y=90*t.^(0.75)*1*1*sign(r) plot(r,y) r=1150:1199; y=90.*t.^(0.75).*1.*10.^(0.018.*(r-1150)); plot(r,y) r=1200:1399; y= 90*t.^(0.75)*1*8*sign(r); plot(r,y) r=1400:1499 y= 5600*t.^(0.25)*sign(r); plot(r,y)
- trytobe
- ベストアンサー率36% (3457/9591)
plot の前(上)の end を削除しないと、そこで終わってるかも。
- f272
- ベストアンサー率46% (8467/18126)
if 400<= r <700 どこでこんな書き方を学んだの? if r <700 としたいんじゃないの?そのほかも elseif r <1050 elseif r <1150 elseif r <1200 elseif r <1400 elseif r <1500 だよね。ところでrが1500以上のときは?
補足
ご回答ありがとうございます. t=10; for r=400:1:2000 %波長 if r <700 y= 18*10.^(0.75); elseif r <1050 y= 18*10.^(0.75)*10.^(0.002*(r-700)); elseif r <1150 y= 90*10.^(0.75)*1*1; elseif r <1200 y= 90*10.^(0.75)*1*10.^(0.018*(r-1150)); elseif r <1400 y= 90*10.^(0.75)*1*8; elseif r <1500 y= 5600*10.^(0.25); end plot(r,y) end としましたが、グラフにプロットが打たれません,,何故でしょうか..
- trytobe
- ベストアンサー率36% (3457/9591)
なんか、ムダな空白とピリオドがたくさん入っているような気がしますが、それを取り除いた上で、 ・t=10 の行末は; ・plot(r,y) の行末も; にしてもダメですか。
補足
ご丁寧なご回答ありがとうございます. ピリオドを取り除き、t=10 の行末に;、plot(r,y) の行末に;としました。 グラフは表示されるのですが、プロットされていません、、 何故でしょうか...
補足
ご回答ありがとうございます. if文に対するendなので,それは違いました.