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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Core (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert

von Christopher J. (christopher_j23)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.