画瀑布图如何消隐?
画瀑布图时怎样消隐啊,数据量很大时,感觉效果不是明显,大家有没有什么好的 方法,下面是我的源程序,帮忙改下咯,thanks。org_data=distilldata('data.txt');
for j=1:1:8%取1-8号通道数据数据
data=org_data(:,j);
length=size(data)/4096;%%%数据分段
x=0:1:2047;%频率分辨率1Hz
WFIntval=1;%y轴间距 为 1s
for i=1:1:2048
y(i)=0;
end
for i=1:1:length
z=data((i*4096-4095):(i*4096));
z=z-mean(z);
z=abs(fft(z,4096))/2048;
z=z';
figure(j);
plot3(x,y+WFIntval*i,z(1:2048));
xlabel('频率/Hz');
ylabel('时间/s');
zlabel('幅值/mm/s^2');
title('瀑布图');
view(30,30);
axis();%显示0-2000Hz
hold on
end
grid
end 数据太大了,有几兆,传不上来了。下面是读取数据的函数。
function =distilldata(infile)
%功能说明:
%将保存数据的原始文件中的数值数据读入到一个data变量中
%使用说明:
% infile——原始数据文件名;
% data=数据变量
tmpfile='tmp2.mat';
fidin=fopen(infile,'r'); % 打开原始数据文件(.list)
fidtmp=fopen(tmpfile,'w'); % 创建保存数据文件(不含说明文字)
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读入一行文本(不含回车键)
if ~isempty(tline) % 判断是否空行
=size(tline);
flag=1;
for i=1:n %判断一行中有没有字符(+-.Ee和空格键除外)
if ~(tline(i)==' '|tline(i)=='-'|tline(i)=='.'|tline(i)=='E'...
|tline(i)=='e'|tline(i)=='+'...
|(double(tline(i))>=48&&double(tline(i))<=57))
flag=0;
break;
end
end
if flag==1 % 如果是数字行,把此行数据写入文件
fprintf(fidtmp,'%s\n',tline);
end
end
end
fclose(fidin);
fclose(fidtmp);
data=textread(tmpfile);
delete(tmpfile); 不是有waterfall吗?
参考下pcolor
回复 板凳 ChaChing 的帖子
pcolor没用过,能介绍一下用法吗?谢了哈 pcolor的使用与waterfall相同!waterfall(Hz,tt,ApsdM), pcolor(Hz,tt,ApsdM)
ApsdM : the ASPD waterfall matrix
细节自行试试看
页:
[1]