2010-07-12 59 views
5

Me gusta crear un script de "generación de informes" en Matlab.Texto y gráficos en Matlab a LaTeX

Supongamos que tenemos una matriz Matlab, data y queremos exportar lo siguiente a un archivo .tex: "La información en el primer elemento de datos es X." Esto sería seguido por un diagrama de X.

Ya he intentado help latex en Matlab y estoy al tanto de los diversos paquetes en el intercambio de archivos Matlab. Sin embargo, no he visto nada hasta el momento que me permita exportar tanto el texto como los gráficos en el mismo script de Matlab a un archivo .tex.

+0

Tuve el mismo problema, y ​​terminé escribiendo mi propia herramienta de generación de informes que escribe archivos .tex porque tenía la opción de autogenerar un script para publicar o generar automáticamente un archivo .tex. Este último me da más opciones. – Jonas

Respuesta

0

Exportar las cifras de Matlab a un archivo .tex es solo cuestión de exportar la figura a un formato apropiado y luego incluir el archivo de figura en el archivo .tex. ¿Algo como el código enumerado a continuación funciona para sus necesidades?

Usando LaTeX para generar DVI:

% Include code to write text to .tex file (fid is assumed to be the file id of the .tex file) 
print(gcf,'figure1','-depsc','-r100'); 
fprintf(fid,'\includegraphics[width=4in]{figure1.eps}\n'); 

Usando pdfTeX para generar pdf:

% Include code to write text to .tex file (fid is assumed to be the file id of the .tex file) 
print(gcf,'figure1','-djpg','-r100'); 
fprintf(fid,'\\includegraphics[width=4in]{figure1.jpg}\n'); 
+0

no, esto no funcionaría, ya que solo se trata de cifras, no de texto y cifras. – Elpezmuerto

+0

@Elpezmuerto: Quizás esta sea una solución muy específica, pero funcionaría para tu ejemplo. fprintf (fid, ['La información en el primer elemento es' num2str (X (1)) '\ n']); Esto es muy tedioso para generar informes/documentación. ¿Podría explicar sus necesidades más amplias? – arun

+0

Tenemos métricas comunes en todos los informes y en lugar de volver a escribir el informe o copiar y editar el informe (ambos tediosos), quiero crear un script de Matlab que genere un punto de partida para la sección de resultados del informe. Indicaría las métricas y mostraría la figura apropiada. No quiero usar matlab2tikz o algo similar, todo lo que hacemos un nuevo análisis. Me gusta ejecutar este script que genera todas las tramas y texto básico.Entiendo que esto puede ser bastante ambicioso. – Elpezmuerto

3

¿Sabe usted de matlab2tikz? Lo he usado extensamente para mi tesis de doctorado, aunque solo para exportar parcelas individuales. Pero creo que debería ser posible fácilmente inventar algo que combine el poder de las capacidades de exportación de MATLAB LaTeX.

+0

Lo he usado anteriormente, pero tal como lo indicó al exportar parcelas individuales. – Elpezmuerto

+0

Pero creo que es mejor que solo exporte un archivo PNG (a menos que realmente necesite compatibilidad con el zoom infinito) – bobobobo

+0

@bobobobo Quizás también es importante que las fuentes en los gráficos coincidan con las fuentes del texto (que fue el caso de mi Disertación, donde quería utilizar Palatino en todo el documento. Esto no es posible con una exportación PNG de MATLAB, solo con pgfplots. – Habi

4

La función publish puede funcionar para usted.

Crear este script, foo.m:

%% 
% The information in the first element of data is X. 

plot(X) 

y publicarlo en LaTeX:

>> publish foo latex 
+1

publicar parece prometedor, sin embargo, al usar comentarios no es muy dinámico. Quiero exportar lo que "X "es. Supongamos que X = 50, entonces la salida de LaTeX sería: " La información en el primer elemento es 50 " – Elpezmuerto

+0

' publish' puede hacerlo con la suficiente facilidad, simplemente ponga X (1) en una línea propia (no en un comentario), se incluirá en la lista de salida. Creo que 'publish' es la forma habitual de hacerlo en el mundo de MATLAB, vale la pena ir y mirar la documentación. – rescdsk

Cuestiones relacionadas