Seite 1 von 1

Von Matlab in Tikz in Latex

Verfasst: Mo 13. Apr 2015, 11:36
von greeco-k
Hallo zusammen,

ich habe in Matlab einen Grafik die ich gerne in mein Latex Dokument aufnehmen würde. Bisher habe ich folgende Lösung gefunden. Auf der Matlab Seite gibt es ein Skript (Matlab2tikz), welches eine geöffnete figure in Matlab in tikz grafik übersetzt. Das Skript spukt dann soetwas aus:
\begin{tikzpicture}

\begin{axis}[%
width=0.4\linewidth, %G-K: Hier habe ich von Hand nachgebessert!
height=3.87974in,
at={(1.742812in,0.523646in)},
scale only axis,
separate axis lines,
every outer x axis line/.append style={black},
every x tick label/.append style={font=\color{black}},
xmin=0,
xmax=5,
xmajorgrids,
every outer y axis line/.append style={black},
every y tick label/.append style={font=\color{black}},
ymin=0,
ymax=6.5,
ymajorgrids
]
\addplot [color=blue,solid,forget plot]
  table[row sep=crcr]{%
0	2.5\\
0.01	2.5075\\
0.03	2.5225\\
0.07	2.5525\\
0.15	2.6125\\
0.31	2.7325\\
0.63	2.9725\\
1.27	3.4525\\
2.55	4.4125\\
5	6.25\\
};
\end{axis}
\end{tikzpicture}%
Das ganze binde ich dann folgendermaßen in mein Latex Dokument ein:
\documentclass[a4paper,12pt]{scrreprt}
\usepackage[left= 2.5cm,right = 2cm, bottom = 4 cm]{geometry}
\usepackage[demo]{graphicx}
\usepackage{graphicx, subfigure}
\usepackage[utf8]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{float}

\usepackage{pgfplots}


\begin{document}
 Hier steht ein Beispieltext! =)

\begin{figure}[htbp]
  \centering
\begin{minipage}{0.8\textwidth}
  \centering
    \input{Abbildungen/Test_Grafik.tex}
    \input{Abbildungen/Test_Grafik.tex}
      \caption[]{Das ist eine schöne Vektorgrafik\footcite[45]{MeineQuelle}}
    \label{abb:}
\end{minipage}
\end{figure}

\end{document}
Wenn jetzt die Grafik sehr breit ist, wird diese nicht in der Minipage gehalten, sondern geht bis über den Seitenrand hinaus. Ich habe jetzt, wie oben angedeutet, immer per Hand die Breite der Abbildung editiert. Ich denke das liegt am input Befehl. Kenne mich da aber nicht so aus.

Gibt es noch eine bessere/schönere/stabilere Lösung Matlabgrafiken einzubinden?

Wie immer vielen Dank schonmal!

Verfasst: Mo 13. Apr 2015, 17:34
von bademaister
Moin,

könntest du nicht einfach deinen Plot aus Matlab in eine PDF/EPS-Datei plotten und diese dann in Latex einbinden?

Beim Plotten kannst du dann auch schon eine gewünschte Breite angeben, was dann das Skalieren in Latex eventuell überflüssig macht.



Grüße

Paul

Verfasst: Mo 13. Apr 2015, 18:01
von Johannes_B
Oder Werte in eine Textdatei schreiben und mit pgfplots plotten.

Verfasst: Di 14. Apr 2015, 13:42
von greeco-k
bademaister hat geschrieben:Moin,

könntest du nicht einfach deinen Plot aus Matlab in eine PDF/EPS-Datei plotten und diese dann in Latex einbinden?

Beim Plotten kannst du dann auch schon eine gewünschte Breite angeben, was dann das Skalieren in Latex eventuell überflüssig macht.



Grüße

Paul
Dann hätte ich aber nicht die Latex Schrift und könnte keine Formeln usw. verwenden... oder?

@Johannes:
Aber mache ich das nicht? Siehe ersten Post?

Grüße

Verfasst: Di 14. Apr 2015, 13:53
von Johannes_B
Doch schon, allerdings wird der Code von einem Script generiert, was für dich Nachbearbeitung bedeutet.
Ändern sich deine Werte in Matlabl, musst du das Skript neu aufrufen, neu nachbearbeiten.

Exportierst du stattdessen die Werte nackisch, und lässt diese durch pgfplots darstellen (Übergabe des Dateinamen), musst du bei eventuellen Änderungen nur noch aus Matlab exportieren. Damit bleibt auch der LaTeX-Code übersichtlicher, da du dir Dinge wie das Setzen der Schriftfarbe auf schwarz meist sparen kannst.

Verfasst: Di 14. Apr 2015, 14:42
von greeco-k
Ah ok ja das klingt besser.

Ich soll also die Matlab figure speichern und diese dann in mein Latex dokument einbinden? Als was soll ich speichern? eps? Und wie binde ich dann ein?

Besten Dank schonmal!

Verfasst: Di 14. Apr 2015, 15:01
von Johannes_B
Das hast du doch vorhin mit der Begründung verworfen, nicht die Schriftart dines Dokumentes zu haben.

Du sollst deine Messwerte in eine Datei exportieren, und diese Datei von pgfplots darstellen lassen.

Verfasst: Di 14. Apr 2015, 21:53
von greeco-k
ah jetzt hab ich es verstanden! =)

Mache denke ich aber lieber die gesamte formatierung der Grafik in Matlab und passe dann Höhe und Breite händisch an, bevor ich mich jetzt in pgfplots reinfuchse...