2016-11-08 2 views
0

Ich schreibe einen Matlab-Code, der Zahlen als PNG und EPS plottet und speichert.Matlab: Öffne zuvor gespeicherte Zahlen und speichere als

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) 

Ich möchte sie nur als FileName.fig für späteren Prozess speichern. Die Funktion/das Skript, das ich erstellen möchte, würde alle * .fig im aktuellen Verzeichnis lesen und sie als definierte Funktion speichern.

Hier ist eine Pseudo-Funktion ... Aber ich bin mir nicht sicher, wie es richtig funktioniert!

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

Bevor Sie es schließen, tun Sie 'savefig (h, 'myname.fig')' –

Antwort

0

Ich fand eine Lösung, wie dies zu tun ist. Hier ist meine Funktion, wenn jemand anderes eine solche Funktion benötigt.

Schreiben Sie einfach:

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

* .fig zu * .png oder * .eps jeweils zu konvertieren.

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 
Verwandte Themen