Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-07-03, 10:11   #1
blau
初级会员
 
注册日期: 2008-11-12
年龄: 43
帖子: 2
声望力: 0
blau 正向着好的方向发展
默认 [求助]用plot画图的一个问题

用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的那根线也不显示。

想了很久,真是焦头烂额。希望有高人指点一下!
多谢了
blau 当前离线   回复时引用此帖
旧 2009-07-03, 14:40   #2
messenger
初级会员
 
注册日期: 2008-11-01
年龄: 26
帖子: 12
声望力: 17
messenger 正向着好的方向发展
默认 回复: [求助]用plot画图的一个问题

可以将不想画斜线的地方改为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)
messenger 当前离线   回复时引用此帖
旧 2009-07-03, 21:14   #3
blau
初级会员
 
注册日期: 2008-11-12
年龄: 43
帖子: 2
声望力: 0
blau 正向着好的方向发展
默认 回复: [求助]用plot画图的一个问题

多谢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

不知道为什么改不了,还请指教!
blau 当前离线   回复时引用此帖
旧 2009-07-04, 09:49   #4
TTT_IOU
普通会员
 
注册日期: 2009-02-22
帖子: 91
声望力: 18
TTT_IOU 正向着好的方向发展
默认 回复: [求助]用plot画图的一个问题

你的上面是可以的,试试这个:
y(~logical(y))=nan;
TTT_IOU 当前离线   回复时引用此帖
旧 2009-07-04, 10:45   #5
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认 回复: [求助]用plot画图的一个问题

y(y==0)=nan 可能更为简单。
slgu 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 01:40


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.