Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-11-12
年龄: 43
帖子: 2
声望力: 0 ![]() |
![]()
用plot画一个图
程序简化如下: x = [1 2 3 4 5]; y = [ 0 1 0 2 0 0; 0 1 0 2 0 3; 0 1 0 2 0 3; 0 0 0 2 0 3; 0 0 0 2 0 3;]; plot(x,y,'lineWidth',3) 问题来了,总共生成了4条线.如何才可以不要在图里显示为0的值。 也就是说,只要横线部分,斜线部分不要。还有为0的那根线也不显示。 想了很久,真是焦头烂额。希望有高人指点一下! 多谢了 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-11-01
年龄: 26
帖子: 12
声望力: 17 ![]() |
![]()
可以将不想画斜线的地方改为NaN
x = [1 2 3 4 5]; y = [ 0 1 0 2 0 NaN; 0 1 0 2 0 3; 0 1 0 2 0 3; 0 NaN 0 2 0 3; 0 NaN 0 2 0 3]; plot(x,y,'lineWidth',3) |
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-11-12
年龄: 43
帖子: 2
声望力: 0 ![]() |
![]()
多谢ls的回复
由于真实的数据量很大,而且y里的数据是处理原始数据得出来的。也不好手动的把0改为NaN。 自己写了段程序: [c,r] = size(y); for m = 1:c for n = 1:r if y(m,n) == 0 y(m,n) = NaN; end end end 不知道为什么改不了,还请指教! |
![]() |
![]() |
![]() |
#4 |
普通会员
注册日期: 2009-02-22
帖子: 91
声望力: 18 ![]() |
![]()
你的上面是可以的,试试这个:
y(~logical(y))=nan; |
![]() |
![]() |
![]() |
#5 |
高级会员
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21 ![]() |
![]()
y(y==0)=nan 可能更为简单。
|
![]() |
![]() |