作者hongyi0402 (momorin)
看板MATLAB
标题[讨论] if函数无法绘制
时间Sun Mar 17 01:53:20 2019
各位好
小弟初入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://webptt.com/cn.aspx?n=bbs/MATLAB/M.1552758802.A.3BB.html
1F:推 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
2F:推 profyang: 这画法很奇怪啊...你就算有加上1F的hold on 也等於是一03/17 14:59
3F:→ profyang: 一点去化 但plot预设是多点才会连成线让你可以看到 所以03/17 14:59
4F:→ profyang: 你应该还是看不到任何东西啊03/17 14:59
5F:→ profyang: 你真的坚持要这样写只能在每个plot後面加'ro'之类的让他03/17 15:00
6F:→ profyang: 每点都标出来 例如plot(t,t*2,'ro')03/17 15:00
请问如果是在for回圈里面,计算出来只会是一个点这样吗?
8F:推 shuncheng: 推楼上细心检查,小弟学到惹ro跟新的写法03/17 17:08
9F:→ shuncheng: 窝通常都会这样写03/17 17:09
10F:→ shuncheng: y=2*t.*(t>0&t<1)+0.5*(t.^2-4*t+3).*(t>=1&t<3);03/17 17:09
原来可以直接将逻辑放在算式中,一直以为只能利用if来做逻辑判断
11F:推 profyang: 楼上的写法比我好耶~简洁可读性也比较高 学到了!03/17 17:30
※ 编辑: hongyi0402 (39.9.227.108), 03/17/2019 20:09:06
12F:→ name0625: 你用for,t就是一个一个跑,上面两位则是设成矩阵一次 03/17 20:40
13F:→ name0625: 跑,要画出连续线段就需要直接放矩阵,可参考doc plot 03/17 20:40
14F:推 profyang: 就我上面说的 你for t=...就是每次一个t值 然後你把这t 03/17 22:16
15F:→ profyang: 对它函数值画图 一次只有一个点 就算有hold on住 每次一 03/17 22:16
16F:→ profyang: 点也要用上面的'ro'这样的marker才可以看的到 03/17 22:17
感谢大大让我多学到其他写法获益良多
※ 编辑: hongyi0402 (36.224.219.131), 03/17/2019 23:15:40
17F:推 sppmg: 提醒一下,你应该用&&会比较合理。 03/18 22:18