2016-11-08 8 views
0

図をプロットして保存するMatlabコードをpngとepsとして作成しています。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') 

をそれぞれ* .PNGまたは* .EPSに* .figを変換します。

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 
関連する問題