2009-03-03 18 views
11

¿Alguien sabe si es posible escribir automáticamente una figura en un archivo .eps en MATLAB?Escriba una figura en un archivo automáticamente en MATLAB

Estoy ejecutando un script que produce una gran cantidad de gráficos, y sería bueno si no tuviera que guardarlos manualmente.

Cheers, Ed

+1

Quizás relacionado [aquí] (http://stackoverflow.com/questions/10478414/saving-a-plot-as-a-png-in-matlab). – hhh

Respuesta

10

print function hace eso:

figura Imprimir o guardar en formato de archivo específico ...

print(filename,formattype) ahorra la cifra actual en un archivo utilizando el formato de archivo especificado, como print('BarPlot','-dpng'). Si el nombre del archivo no incluye una extensión, imprima agregando el apropiado.

print(filename,formattype,formatoptions) especifica las opciones adicionales que están disponibles para algunos formatos.

print imprime la cifra actual en la impresora predeterminada ...

+0

Gracias, me ahorra un montón de esfuerzo =] –

3

Este fue respondida en this other question, usando el comando PRINT. Aunque esa pregunta se refería a la realización de imágenes .tiff, debería ser sencillo modificar el código que se proporciona en esas respuestas para escribir un .eps.

+0

No estoy cargando una imagen dentro o fuera, este es un conjunto de gráficos generados automáticamente, por lo que no estoy seguro de que se aplique la misma sintaxis. –

+0

Aunque el texto de la pregunta solo muestra IMREAD e IMWRITE, algunas de las respuestas muestran cómo usar la función PRINT para generar una imagen graficada. – gnovice

10

impresión o saveas harán el truco.

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

Si desea especificar el nombre del archivo de salida, es mejor utilizar saveas.

+1

en realidad, puede especificar el nombre del archivo muy bien con -print -epsc nombre de archivo –

0

Supongamos, que están generando número N de figuras en un bucle, a continuación, usted debe tratar de la línea de comandos:

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

en lugar de gca también se puede usar gcf. La primera línea de comando es una mejor solución.

Espero que esto resuelva su problema.

Cuestiones relacionadas