Forum: PC-Programmierung Matlab Variablen Speichern und in Latex plotten


von Core (Gast)


Lesenswert?

Hey,

gibt es eine Möglichkeit, aus gespeicherte Matlab Variablen (.mat) 
Grafiken für Latex zu erzeugen? Oder muss ich die Daten in Matlab 
importieren, dort plotten, Save As, und dann ab in latex als jpeg?

Zudem, kann ich aufgenommenen Variablen im Workspace als .csv 
exportieren?


Ich frage deshalb, weil ich mich in meiner Abschlussarbeit befinde, die 
Matlab Lizenzen natürlich auf dem Firmenrechner laufen. Kommt es aber in 
mehreren Monaten zur Schlussphase, wo ich nicht mehr Zugriff auf einen 
Firmenrechner mit Lizenzen habe, habe ich natürlich ein Problem wenn ich 
die Daten doch anders darstellen bzw. beschriften möchte..

von Ulrich (Gast)


Lesenswert?

Hallo,

man kann die Daten in matlab in eine Table schreiben. Diese als csv 
speichern ('writetable'). Die csv-datei kann man in latex mit hilfe von 
"pgfplots" in sehr schöne Diagramme umwandeln.

Das hat auch den Vorteil, dass die Schriftart und Größe zum restlichen 
Dokument passt. Man kann auch in Legenden auf Formeln verweisen und hat 
eigentlich alle Vorteile von LaTeX.

Falls du noch was vergessen würdest von .mat in .csv um zu speichern 
kannst du das auch mit gnu octave nachholen. In diesem kann man .mat 
dateien laden und .csv speichern  (hier: csvwrite). Da octave unter der 
GPL steht brauchst du keine Lizenz dafür.

lg
Ulrich

von Dustin L. (weeky)


Lesenswert?

Das hier habe ich fuer meine Masterarbeit verwendet: 
https://de.mathworks.com/matlabcentral/fileexchange/22022-matlab2tikz-matlab2tikz

Das funktioniert mit ein paar Einschränkungen gut. Die Sachen sind dann 
als .tex gespeichert und du kannst die Formatierung auch im Nachhinein 
noch anpassen. Ansonsten kannst du die Daten auch als .dat file 
(Beschreibung siehe hier: 
https://tex.stackexchange.com/questions/44637/plotting-dat-file-in-pgfplot-with-multiple-columns) 
speichern und in pgfplots einbinden.

Gruß

von Frank K. (fchk)


Lesenswert?


von Christopher J. (christopher_j23)


Lesenswert?

Ich war an der Uni auch gezwungen meine Daten mit Matlab bzw. dSpace zu 
erfassen. Die Plots habe ich dann aber mit Python gemacht, d.h. import 
von .mat-Dateien, Plots mit Matplotlib. Am Ende hatte ich dann SVGs, die 
schonmal viel besser als .jpeg sind, weil als Vektorgrafik grundsätzlich 
verlustfrei. Bei .jpeg hast du am Ende im Druck sichtbare hässliche 
Artefakte (Hintergrund "grau statt weiß", etc.).

Die .svg kann man entweder manuell mit Inkscape in .eps oder so 
umwandeln, oder man nutzt direkt das svg-Paket aus CTAN, welches das für 
einen automatisiert:
https://ctan.org/pkg/svg

Ich habe mit Python (inkl. Numpy, Matplotlib, etc.) die Daten nicht nur 
geplottet, sondern auch aufbereitet. Für mich war das sehr komfortabel, 
weil ich mich auch schon vorher damit beschäftigt hatte. Vielleicht ist 
Julia noch eine Alternative für dich, weil die Syntax sehr ähnlich zu 
Matlab ist (1-based indexing, usw.). Python und Julia (inkl. aller 
Pakete) sind Open-Source, d.h. du brauchst dir um irgendwelches 
Lizenzgeraffel keine Gedanken zu machen.

von Marcel B. (mabu1)


Lesenswert?

Ich habe noch nicht mit Octave mat Dateien importiert. Meist generiere 
ich mir für Plots aus Matlab heraus das Interessante als CSV. Wegen der 
Lizenzsache: Falls Du Matlab für dich persönlich mögen solltest: Die 
Studentenlizenz erfordert nur eine Uni-Mail-Adresse und Größenordnung 25 
€. Die ist dann soweit ich es erfasst habe dauerhaft gültig für 
Studienzwecke, nicht für gewerblich. Ich persönlich habe 2 Lizenzen mir 
darüber geholt.

VG

Marcel

von Jan K. (jan_k)


Lesenswert?

Es gibt mehrere Möglichkeiten
- matlab2tikz https://github.com/matlab2tikz/matlab2tikz (tikz/pgfplots 
- macht hervorragende Plots, aber mit einigen Fallstricken)
- export_fig 
https://de.mathworks.com/matlabcentral/fileexchange/23629-export_fig 
(eps/pdf oder im worst case [hochqualitative] png)
- fig2svg https://github.com/kupiqu/fig2svg

von diensthabender quotendepp (Gast)


Lesenswert?

ich habe damals (tm) "savefig" verwendet
https://de.mathworks.com/matlabcentral/fileexchange/10889-savefig

kann auch in einem .m File aus der Konsole verwendet werden (Makefile, 
shellscript, ...)

die Daten wurden aus Logfiles extrahiert, geladen, aufbereitet und 
sowohl als (Vektor) pdf als auch als eps gespeichert. Und weil ich ein 
faules Schwein war/bin auch gleich ein include-file für LaTeX erzeugt, 
in dem die (Sub)Plots alle zusammengefasst waren.

von Volle (Gast)


Lesenswert?

Übrigens  gibt es für Matlab sehr günstige Studenten Lizenzen
oder kostenlose Nutzung der Hochschul-Lizenz
und auch günstige Privat Lizenzen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.