Importando archivo .mat a pgfplots

Importando archivo .mat a pgfplots

Lo estoy usando pgfplotspara crear figuras y tengo un (gran) conjunto de datos de simulación generados a partir de Matlab. Está en el .matformato. Los datos son de la forma (dos columnas)

(1,0.2)

(1,0.3)

...

(1,0.2)

...

(2,0.4)

(2,0.1)

...

pgfplotsSerí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 .matel 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

información relacionada