2016-11-08 52 views
0

我正在写一个绘制并保存数字为PNG和EPS的Matlab代码。Matlab:打开先前保存的数字并保存为

h = figure(3); 
    plot(x,y) 
    xlabel('x'); ylabel('y'); 

     FileName = sprintf('FileName.eps'); 
     print(h,'-depsc', '-loose', FileName); 

     FileName = sprintf('FileName.png); 
     print(clhis,'-dpng', '-loose', FileName); 

close(h) 

我想将它们保存为FileName.fig以备以后使用。 我想创建的函数/脚本将读取当前目录中的所有* .fig,并将它们保存为定义的函数。

这是一个伪函数...但我不知道如何使它正常工作!

function figureconvert(ext) % NOT WORKING! Just a mock up! 
ext = 'eps';   

Vector = READ ALL FIGS IN FOLDER; 

for i = 1:length(Vector) 
h = load Vector(i) 

      FileName = sprintf('FileName.%s',ext); 
      % print(h,'-d%sc', '-loose', FileName); ?? 

    close(h) 
end 
end 
+0

在关闭它之前,执行'savefig(h,'myname.fig')' –

回答

0

我发现一个解决方案如何做到这一点。这是我的功能,如果别人需要这样的功能。

只要写:

figureconvert('png') or  figureconvert('eps') 

为* .FIG分别为*。PNG或* .EPS转换。

function figureconvert(ext) 
Files = dir('*.fig'); 
ext = ['.',ext]; ext = strrep(ext,'..','.'); 

for i = 1:length(Files) 
    figname = Files(i,1).name; 
    h = openfig(figname); 
    FigName = strrep(figname,'.fig',ext); 

    if strcmp(ext,'.eps') 
     print(h,'-depsc', '-loose', FigName); 
    elseif strcmp(ext,'.png') 
     print(h,'-dpng', '-loose', FigName); 
    end 

    close(h) 
end 
end