Importieren einer .mat-Datei in pgfplots

Importieren einer .mat-Datei in pgfplots

Ich verwende pgfplotszum Erstellen von Abbildungen und habe einen (großen) Satz von Simulationsdaten, die aus generiert wurden Matlab. Er liegt im .matFormat vor. Die Daten haben die Form (zweispaltig)

(1,0.2)

(1,0.3)

...

(1,0.2)

...

(2,0.4)

(2,0.1)

...

Ein Streudiagramm in pgfplotswäre angemessen. Ich möchte diese Datei direkt mit importieren pgfplots. Leider scheint der folgende Code nicht zu funktionieren.

\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} 

Weiß jemand, wie man diese Daten importiert? Da die Größe etwas groß ist, ist es nicht möglich, jedes Sample in den Code zu kopieren.

Antwort1

Dies liegt daran, dass .matdie Datei ein Binärformat hat und TeX keine Binärdateien lesen kann. Ich weiß nicht, wie man es möglich machen kann, das Binärformat aus einer Datei zu lesen, aber eine wesentlich bequemere Möglichkeit besteht darin, die Arrays in einer hohen Matrix als Spalten zu speichern.

Angenommen, Sie haben die Datenspalten a, b, c mit gleicher Länge (andernfalls füllen Sie die fehlenden Einträge mit NaN oder Inf auf, sodass pgfplots sie verwerfen kann). Dies kann in Matlab über

Mymatrix = [a b c];
save('myfile.txt', 'Mymatrix', '-ascii','-double');

Dadurch werden die Arrays in einem Nur-Text-Format ohne Header gespeichert. Ich habe nicht überprüft, ob der vollständige Pfad im Dateinamenfeld unterstützt wird, aber es sollte möglich sein.

Generell würde ich empfehlen, auf die Aufnahme von Spaltennamen zu verzichten Mymatrix. Denn Matlab ist eine großartige Software.

Antwort2

In neueren Matlab-Versionen wird empfohlen, aus dem Array eine Tabelle zu generieren und diese in eine CSV-Datei zu schreiben. Die Tabelle hat eine Kopfzeile, die die Spaltennamen enthält und ebenfalls in die CSV-Datei geschrieben wird. SieheMATLAB-Antworten

verwandte Informationen