• 締切済み

プログラムについて(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 ------------------------------------------------------ お詳しい方よろしくお願いします.

みんなの回答

  • masudaya
  • ベストアンサー率47% (250/524)
回答No.4

何がわるいかよく分かりませんが, とりあえず,表示するようにしました. 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)
回答No.3

plot の前(上)の end を削除しないと、そこで終わってるかも。

nknknknk222
質問者

補足

ご回答ありがとうございます. if文に対するendなので,それは違いました.

  • f272
  • ベストアンサー率46% (8467/18126)
回答No.2

if 400<= r <700 どこでこんな書き方を学んだの? if r <700 としたいんじゃないの?そのほかも elseif r <1050 elseif r <1150 elseif r <1200 elseif r <1400 elseif r <1500 だよね。ところでrが1500以上のときは?

nknknknk222
質問者

補足

ご回答ありがとうございます. 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)
回答No.1

なんか、ムダな空白とピリオドがたくさん入っているような気がしますが、それを取り除いた上で、 ・t=10 の行末は; ・plot(r,y) の行末も; にしてもダメですか。

nknknknk222
質問者

補足

ご丁寧なご回答ありがとうございます. ピリオドを取り除き、t=10 の行末に;、plot(r,y) の行末に;としました。 グラフは表示されるのですが、プロットされていません、、 何故でしょうか...