2009-03-03 15 views
11

Qualcuno sa se è possibile scrivere automaticamente una figura in un file .eps in MATLAB?Scrivi automaticamente una figura in un file in MATLAB

Sto eseguendo uno script che produce un numero elevato di grafici e sarebbe bello se non dovessi salvare manualmente ciascuno di essi!

Cheers, Ed

+1

Forse correlato [qui] (http://stackoverflow.com/questions/10478414/saving-a-plot-as-a-png-in-matlab). – hhh

risposta

10

print function fa che:

figura Stampare o salvare in formato di file specifico ...

print(filename,formattype) salva la cifra attuale in un file utilizzando il formato di file specificato, come ad esempio print('BarPlot','-dpng'). Se il nome del file non include un'estensione, quindi stampa accoda quello appropriato.

print(filename,formattype,formatoptions) specifica le opzioni aggiuntive disponibili per alcuni formati.

print stampa il valore corrente alla stampante predefinita ...

+0

Grazie, mi risparmia un sacco di sforzo =] –

3

Ciò è stata risolta in this other question, utilizzando il comando PRINT. Sebbene quella domanda riguardasse la creazione di immagini .tiff, dovrebbe essere semplice modificare il codice fornito in quelle risposte per scrivere un .eps.

+0

Non sto caricando un'immagine dentro o fuori, questo è un insieme di grafici generati automaticamente, quindi non sono sicuro che si applichi la stessa sintassi. –

+0

Sebbene il testo della domanda mostri solo IMREAD e IMWRITE, alcune delle risposte mostrano come usare la funzione PRINT per produrre un'immagine tracciata. – gnovice

10

stampa o saveas farà il trucco.

saveas(fig_handle, 'filename','eps') 
print('-deps',fig_handle) 
print -deps 1 

Se si desidera specificare il nome del file di output, è preferibile utilizzare saveas.

+1

in realtà, è possibile specificare il nome del file bene con -print -epsc nomefile –

0

Supponiamo, si stanno generando N numeri di figure in un ciclo, allora si dovrebbe provare la riga di comando:

saveas(gca,sprintf('Figure%02d.pdf',N)); produce N figure Figure1.pdf - FigureN.pdf saveas(gca,sprintf('Figure%02d.eps',N)); produce N figure Figure1.eps - FigureN.eps

al posto di gca anche possibile utilizzare gcf. La prima riga di comando è una soluzione migliore.

Spero che questo risolva il problema.

Problemi correlati