看板 MATLAB 關於我們 聯絡資訊
各位好 小弟初入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 希望各位指出錯誤 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.219.131 ※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1552758802.A.3BB.html
sin55688: use "hold on" after plot03/17 02:03
Ok I will try thank you ※ 編輯: hongyi0402 (39.9.227.108), 03/17/2019 11:01:08
profyang: 這畫法很奇怪啊...你就算有加上1F的hold on 也等於是一03/17 14:59
profyang: 一點去化 但plot預設是多點才會連成線讓你可以看到 所以03/17 14:59
profyang: 你應該還是看不到任何東西啊03/17 14:59
profyang: 你真的堅持要這樣寫只能在每個plot後面加'ro'之類的讓他03/17 15:00
profyang: 每點都標出來 例如plot(t,t*2,'ro')03/17 15:00
profyang: btw我寫會這樣寫: https://i.imgur.com/CvBXvV2.png03/17 15:10
請問如果是在for迴圈裡面,計算出來只會是一個點這樣嗎?
shuncheng: 推樓上細心檢查,小弟學到惹ro跟新的寫法03/17 17:08
shuncheng: 窩通常都會這樣寫03/17 17:09
shuncheng: y=2*t.*(t>0&t<1)+0.5*(t.^2-4*t+3).*(t>=1&t<3);03/17 17:09
原來可以直接將邏輯放在算式中,一直以為只能利用if來做邏輯判斷
profyang: 樓上的寫法比我好耶~簡潔可讀性也比較高 學到了!03/17 17:30
※ 編輯: hongyi0402 (39.9.227.108), 03/17/2019 20:09:06
name0625: 你用for,t就是一個一個跑,上面兩位則是設成矩陣一次 03/17 20:40
name0625: 跑,要畫出連續線段就需要直接放矩陣,可參考doc plot 03/17 20:40
profyang: 就我上面說的 你for t=...就是每次一個t值 然後你把這t 03/17 22:16
profyang: 對它函數值畫圖 一次只有一個點 就算有hold on住 每次一 03/17 22:16
profyang: 點也要用上面的'ro'這樣的marker才可以看的到 03/17 22:17
感謝大大讓我多學到其他寫法獲益良多 ※ 編輯: hongyi0402 (36.224.219.131), 03/17/2019 23:15:40
sppmg: 提醒一下,你應該用&&會比較合理。 03/18 22:18