
Lo estoy usando pgfplots
para crear figuras y tengo un (gran) conjunto de datos de simulación generados a partir de Matlab
. Está en el .mat
formato. Los datos son de la forma (dos columnas)
(1,0.2)
(1,0.3)
...
(1,0.2)
...
(2,0.4)
(2,0.1)
...
pgfplots
Sería apropiado un diagrama de dispersión . Quiero importar directamente este archivo usando pgfplots
. Desafortunadamente, el siguiente código parece no funcionar.
\documentclass{article}
\usepackage{pgfplots}
\usepackage{xcolor}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}
\addplot+[scatter]
table{test.mat};
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
¿Alguien sabe cómo importar estos datos? Dado que el tamaño es un poco grande, no es posible copiar todas las muestras en el código.
Respuesta1
Esto se debe al hecho de que .mat
el archivo tiene un formato binario y TeX no puede leer binario. No sé cómo se puede leer el formato binario de un archivo, pero una forma bastante más conveniente es almacenar las matrices en una matriz alta como columnas.
Suponga que tiene las columnas de datos a,b,c con la misma longitud (de lo contrario, complete las entradas que faltan con NaN o Inf de modo que pgfplots pueda descartarlas). Esto se puede hacer en matlab a través de
Mymatrix = [a b c];
save('myfile.txt', 'Mymatrix', '-ascii','-double');
Esto guardaría las matrices en formato de texto plano sin encabezados. No verifiqué si se admite la ruta completa en el campo de nombre de archivo, pero debería ser posible.
En general, recomendaría evitar incluir nombres de columnas en el archivo Mymatrix
. Porque matlab es un gran software.
Respuesta2
En las versiones más nuevas de Matlab, la forma recomendada es generar una tabla a partir de la matriz y escribirla en un archivo CSV. La tabla tiene una fila de encabezado que contiene los nombres de las columnas y también está escrita en el CSV. VerRespuestasMATLAB