引用 matlab中批处理多个文件和输出多张图...

引用 matlab中批处理多个文件和输出多张图片2010-04-29 11:39:19| 分类: matlab 阅读113 评论0 字号:大小 订阅
本文引用自ahualian《matlab中批处理多个文件和输出多张图片》
%---------------------------------得到文件夹和文件名
%cd d:/sichuan/drought/hgt/fengx %xxx即是文件所在文件夹。
%dat=struct2cell(dir); %得到上述文件夹下的所有文件名
%dir命令,可以得到路径内包括文件名在内的文件信息,为struc数据结构。
%------------------------旱年f需要的文件绝对路径,并读取----------------------
str1='d:/sichuan/drought/hgt/mean/fx';
for i=18:18
str=[str1 num2str(i) '.txt']; %[ ]为字符合并函数,字符用单引号表示
fid(i)=fopen(str,'r');
[hh,count]=fscanf(fid(i),'%f %f',[12,90]);
f(i,:,:)=hh;
fclose(fid(i));
end
%-------f为所需18个文件所有的数据-----------
%------------------------涝年ff需要的文件绝对路径,并读取----------------------
str1='D:\sichuan\waterlog\hgt\mean\fx';
for i=1:18
str=[str1 num2str(i) '.txt']; %[ ]为字符合并函数,字符用单引号表示
fid(i)=fopen(str,'r');
[hh,count]=fscanf(fid(i),'%f %f',[12,90]);
ff(i,:,:)=hh;
fclose(fid(i));
end
%--------数据读取完成---------------------------------------
x=2:91;
u=[1,16,1,16,1,16,1];
v=[1,16,31,47,62,78,93];
%---------------------循环图片输出------------------------------------------
for i=i:18
fh=figure(1);
ar1=f(i,4,:);ar2=ff(i,4,:);
y1=reshape(ar1,1,90);y2=reshape(ar2,1,90); %-----把三维转换成二维[1,90]----
y1=y1-mean(y1);y2=y2-mean(y2);
%--------------------------------二维曲线画图-------------------------------
plot(x,y1,'-k',x,y2,'--k','linewidth',2.5)
gb=legend('旱年','涝年',0);
set(gca,'fontsize',25); %设置坐标系数的字体大小
set(gca,'xTick',v)
set(gca,'xTicklabel',u) %set设置对象属性
%--set xtick 是设置坐标轴的刻度,set xticklabel 设置标签,两者数目应对应--
set(gb,'fontsize',30); %注意这项与set gca的位置,在其后面此句才有效
s=['旱涝年f' num2str(i) '激发700Hpa位势高度距平图'];
title(s,'fontsize',30)
xlabel('6月 7月 8月')
str1='d:\MATLAB7\work\sichuan\jup700\f';
str=[str1 num2str(i) '.jpg']; %生成需要保存图象的文件名
%uimenu(fh,'label','file') %创建对话框
saveas(gcf,str); %保存图象
end
%print -djpeg 'df2.jpg ' %保存图象
用saveas,print 输出的图片感觉没有直接从运行matlab后图片另存为清晰。这点还有待进一步的探讨。
Tags: 

延伸阅读

最新评论

发表评论