[討論] if函數無法繪製

作者: hongyi0402 (momorin)   2019-03-17 01:53:20
各位好
小弟初入matlab的世界
最近練習if指令卻遇到繪製出來出現空白的狀況
希望能得到各位的幫助
for t=linspace(-5,5)
if t>0 & t<1
plot(t,t*2)
elseif t>=1 & t<3
plot(t,0.5*((t.^2)-4*t+3))
else
plot(t,t*0)
end
end
附上Code 希望各位指出錯誤
作者: sin55688 (單手挑藏獒)   2019-03-17 02:03:00
use "hold on" after plot
作者: profyang (prof)   2019-03-17 14:59:00
這畫法很奇怪啊...你就算有加上1F的hold on 也等於是一一點去化 但plot預設是多點才會連成線讓你可以看到 所以你應該還是看不到任何東西啊你真的堅持要這樣寫只能在每個plot後面加'ro'之類的讓他每點都標出來 例如plot(t,t*2,'ro')btw我寫會這樣寫: https://i.imgur.com/CvBXvV2.png
作者: shuncheng (shuncheng)   2019-03-17 17:08:00
推樓上細心檢查,小弟學到惹ro跟新的寫法窩通常都會這樣寫y=2*t.*(t>0&t<1)+0.5*(t.^2-4*t+3).*(t>=1&t<3);
作者: profyang (prof)   2019-03-17 17:30:00
樓上的寫法比我好耶~簡潔可讀性也比較高 學到了!
作者: name0625 (lawpy)   2019-03-17 20:40:00
你用for,t就是一個一個跑,上面兩位則是設成矩陣一次跑,要畫出連續線段就需要直接放矩陣,可參考doc plot
作者: profyang (prof)   2019-03-17 22:16:00
就我上面說的 你for t=...就是每次一個t值 然後你把這t對它函數值畫圖 一次只有一個點 就算有hold on住 每次一點也要用上面的'ro'這樣的marker才可以看的到
作者: sppmg (sppmg)   2019-03-18 22:18:00
提醒一下,你應該用&&會比較合理。

Links booklink

Contact Us: admin [ a t ] ucptt.com