|
一个绘制三维谱图的程序
- function []=waterpic(axis,nindex,speed,nn,wx,wy,wz)
- % 此程序产生瀑布图,瀑布图三维分别为频率,转速,频率幅值
- % 需要事先提供频谱数据
- % dir=cd;
- % speed=[50 57];%这里插入转速工况
- % naxis=2;%轴数
- % nindex=2;%每个轴的端面数
- % nn=3;%一个端面上的通道数,不计扭振
- tame=1;%存放文件名的循环参数
- tama=1;%导出文件名的循环参数
- %导入频谱数据
- for i=1:axis
- for j=1:nindex
- for tama=1:nn
- for k=1:length(speed)
- aa{1,tame}=[num2str(i),'-',...
- num2str(j),'-',num2str(speed(1,k))];
- ab{1,tame}=[num2str(i),'-',...
- num2str(j)];
- filename=[aa{1,tame},'.dat'];
- fid=char(filename);
- ss1=csvread(fid);%读数据
- ss(:,tame)=csvread(fid,0,tama,[0,tama,length(ss1)-1,tama]);%读数据
- %ss数据的意义是:按照轴号、通道号,提取了某个端口所有工况下的频率值
- %ss的列数为工况数*(轴号*通道号),这样就得到了z轴的数据
- %z的数据有点不同于其他。按照通道来说,它的排列是1-4-9-12-2-5-10-13-3-6-11-14
- tame=tame+1;
- end
- end
- end
- end
- ss0=ss1(:,1);%读频率数据
- [ss0,speed]=meshgrid(ss0,speed');
- %设置图片大小等格式
- pn={'Color','Position'};
- pv={'white',[250,250,650,450]};
- h=figure(pn,pv);
- % 绘制、保存瀑布图
- tas={'H','V','L'};
- for tap=1:axis
- for tab=1:nindex
- for tema=1:nn
- sss=ss(:,1+(tema-1)*(size(speed,1))+...
- (tab-1)*(size(speed,1))+(tap-1)*nindex*(size(speed,1)):...
- tema*(size(speed,1))+...
- (tab-1)*(size(speed,1))+(tap-1)*nindex*(size(speed,1)));
- sss=sss';
- waterfall(ss0,speed,sss);%
- xlim(wx);
- ylim(wy);
- zlim(wz);
- xlabel('Hz');ylabel('rpm');zlabel('\mum');
- pf=[num2str(tap),'-',num2str(tab),'-',tas(tema),tas(tema)];
- pf=char(pf)';
- saveas(h,pf,'bmp');
- end
- end
- end
- close(h)
复制代码 |
评分
-
1
查看全部评分
-
|