matlab中如何保留空行进行绘图?!
我有一个数据文件a.dat,总共100行。每隔10行数据之后,保留一空行。
现在我需要用这个文件进行绘图,但绘图的时候我要保留空行,怎么办?
因为刚才用数据直接绘图的话,matlab貌似自动就把空行给略掉了。
回复 1 # 鸭鸭112 的帖子
空行补零成么
...绘图的时候我要保留空行...
什麼意思? 附件的图片,是我用同样的数据,但用别的软件绘制的图,是对的。
但我用matlab,用同样的数据,结果却是错的。我的代码如下:
A=load('D:\Program Files\MATLAB\test.dat');
x=A(:,1);
y=A(:,2);
z=A(:,3);
plot3(x,y,z)
我觉得里面应该加一些条件,如:
如果遇到空行,则自动跳过,可是应该怎么写呢?请高手指点!
个人水平有限, 真看不清LZ确实要什麼!? 仅猜测clc;clear
A=load('test.dat');
A(4:4:size(A,1),:)=[];x=A(:,1);y=A(:,2);z=A(:,3);
tri=reshape(1:size(A,1),3,[])';trisurf(tri,x,y,z)若一定依LZ原本思路clc;clear
A=load('test.dat'); =size(A);
b=ones(m*5/4,n)*nan;
pp=reshape(1:m*5/4,5,[]); pp=pp(1:4,:); pp=pp(:); b(pp,:)=A;
x=b(:,1);y=b(:,2);z=b(:,3);
plot3(x,y,z) 哇塞,非常感谢ChaChing ,不愧为元老,ok啦,\
再次感谢,学习了.
01.clc;clear
02.A=load('test.dat'); =size(A);
03.b=ones(m*5/4,n)*nan;
04.pp=reshape(1:m*5/4,5,[]); pp=pp(1:4,:); pp=pp(:); b(pp,:)=A;
05.x=b(:,1);y=b(:,2);z=b(:,3);
06.plot3(x,y,z)
说实在的,可以用了.但好像不是很明白.能麻烦您给个注释吗? 我挨着查,但好像还不是很明白,
A=load('test1.dat'); =size(A); % 输出矩阵A的大小,m=2800,n=3
b=ones(m*5/4,n)*nan; % b为新矩阵,所有值为NAN,size(b)结果是:m1=3500,n1=3
pp=reshape(1:m*5/4,5,[]); %pp为重整后矩阵,size(pp)结果是:m2=5,n2=875
pp=pp(1:4,:); % 只取1:4行的数据,size(pp)结果是:m3=4,n3=875
pp=pp(:); %pp变成一个一维数组,size(pp)结果是:m4=4375,n4=1
b(pp,:)=A;
x=b(:,1);y=b(:,2);z=b(:,3);
plot3(x,y,z)
为什么用m*5/4?
回复 8 # 鸭鸭112 的帖子
pp=reshape(1:m*5/4,5,[]); %pp为重整后矩阵,size(pp)结果是:m2=5,n2=875LZ寫錯了吧! 應該n2=700?
为什么用m*5/4?
LZ的test.data的資料不是4行空一行(即要有5行), pp說穿僅是要把A矩陣塞對在b的位置而已
沒優化, 只想可畫即可, 當然需視不同資料格式有所調整!
或許將pp=reshape(1:m*5/4,5,[]); pp=pp(1:4,:); pp=pp(:); b(pp,:)=A;改為下式, 比較明白pp=1:m*5/4; pp()=[]; b(pp,:)=A; 回复 9 # ChaChing 的帖子
再次感谢, 是的,我写错了.
n2=n3=700, m4=2800.
已经明白了是怎么回事,非常感谢。如果有时间,麻烦帮我看看那个生成gif动画的问题,可以吗?我试了很多次了,就是不行。生成的不是动画,而是一张静态图。
页:
[1]