MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB基础] [求助]用plot画图的一个问题 (https://www.labfans.com/bbs/showthread.php?t=9139)

blau 2009-07-03 10:11

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

想了很久,真是焦头烂额。希望有高人指点一下!
多谢了

messenger 2009-07-03 14:40

回复: [求助]用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)

blau 2009-07-03 21:14

回复: [求助]用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

不知道为什么改不了,还请指教!

TTT_IOU 2009-07-04 09:49

回复: [求助]用plot画图的一个问题
 
你的上面是可以的,试试这个:
y(~logical(y))=nan;

slgu 2009-07-04 10:45

回复: [求助]用plot画图的一个问题
 
y(y==0)=nan 可能更为简单。


所有时间均为北京时间。现在的时间是 11:24

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