xsy710 发表于 2009-7-10 16:40

画瀑布图如何消隐?

画瀑布图时怎样消隐啊,数据量很大时,感觉效果不是明显,大家有没有什么好的 方法,下面是我的源程序,帮忙改下咯,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

xsy710 发表于 2009-7-10 16:42

数据太大了,有几兆,传不上来了。下面是读取数据的函数。
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);

ChaChing 发表于 2009-7-10 22:01

不是有waterfall吗?
参考下pcolor

xsy710 发表于 2009-7-13 09:28

回复 板凳 ChaChing 的帖子

pcolor没用过,能介绍一下用法吗?谢了哈

ChaChing 发表于 2009-7-13 13:44

pcolor的使用与waterfall相同!
waterfall(Hz,tt,ApsdM), pcolor(Hz,tt,ApsdM)
ApsdM : the ASPD waterfall matrix
细节自行试试看
页: [1]
查看完整版本: 画瀑布图如何消隐?