Aus dem Kurs: MATLAB Grundkurs

Formatierte Textausgabe – Tutorial zu MATLAB

Aus dem Kurs: MATLAB Grundkurs

Formatierte Textausgabe

Für die formatierte Textausgabe gibt es in Matlab im Wesentlichen zwei Befehle, sprintf und fprintf. Beide Funktionen verwenden die selben Formatierzeichen und liefern im Prinzip die gleiche Ausgabe. Der Unterschied, sprintf liefert Ihr Ergebnis als String zurück und zwar im alten Format. Das heißt, str array beziehungsweise s-Wert, der in Hochkommata notiert wird, wohin gegen fprintf sein Ergebnis entweder im Command Window oder wie hier in einem Live Script Fenster im Ausgabenbereich ausgibt, oder wenn hier als erster Parameter ein Datei-Handle übergeben wird, dann in eine Datei, die mit dem Handle f hier assoziiert ist. Hier sehen Sie eingeblendet die beiden möglichen Syntaxen für den fprintf-Befehl, als erstes kann also eine fileID stehen dann eine Format Specification, und danach die verschiedenen Argumente, die in diesen Format-String eingefügt werden. Das sind also Zeichenfolgen, die mit den Prozentzeichen eingeleitet werden, und hier i, oder f, oder g, oder e, oder wie hier oben s lauten können, ich entferne das wieder. Das Formatierzeichen bestimmt im Wesentlichen, wie die Textausgabe stattfindet. Für Strings muss das %s verwendet werden. Um eine bestimmte Länge der Ausgabe zu erzwingen, kann ich hier beispielsweise eine Zahl eingeben, die besagt, dass ich einen String mit zehn Zeichen haben möchte. Sie sehen nun wird der String auf eine Länge von Zehn erweitert, wobei der String rechtsbündig eingesetzt wird. An Zahlenformaten gibt es eine Menge zur Auswahl. Das %i ist ein ganz allgemeines Zahlenformat, das hier zu einer wissenschaftlichen Notation führt, wie wir an der Ausgabe sehen. Um die übliche Fließkommadarstellung zu haben, verwende ich %f. Hier kann ich Argumente eingeben, wenn ich zum Beispiel nur eine Kommastelle haben möchte für p, dann gebe ich hier .1 an. Ich kann natürlich auch 16 Kommastellen angeben, das ist die Genauigkeit von double, und dann habe ich eigentlich die volle Speichergenauigkeit, die letzten beiden Nullen kommen daher, dass hier drei Stellen vor dem Komma sind, und nicht nur eine. Was ich noch nicht erläutert habe, ist diese Zeichenfolge \ n, sie steht für eine neue Zeile. Das ist im Live Script schlecht vorzuführen, ich hier übertrage diese beiden Befehle daher in ein Command Window, und ergebe sie hier. Und Sie sehen, dass bei der ersten fprintf-Anweisung hier kein \ n ausgegeben wurde, daher erscheinen die beiden Strings hier zusammengeklebt. Um also einen Zeilenvorschub zu erzwingen, muss ich immer die Zeichenfolge \ n angeben. Es gibt noch weitere Zeichenfolgen, zum Beispiel \ b. Das heißt, ein Zeichen zurück, in dem Fall fehlt jetzt hier das n von dem Wort den. Um ein Hochkomma auszugeben, muss ich hier zwei Hochkommata in üblichen Strings notieren. Ich schließe das Command Window und zeige noch eine Besonderheit. Was passiert wenn hier ein Vektor steht? Sie sehen die fprintf-Anweisung wird dadurch automatisch wiederholt, und zwar für jeden Wert. Wenn Sie hier also einen Vektor mit 100 Elementen haben, würde das eine hundertzeilige Ausgabe erzeugen. Sie müssten also, entweder hier 100 Formatierzeichen auch angeben, oder Sie dürfen nur Vektoren der entsprechenden Länge angeben, dass diese Formatierzeichen auch genau zu der Anzahl der Werte passen, also wir können das hier beispielsweise so machen. Natürlich können wir jederzeit weitere Argumente angeben, in bunter Mischung Strings und Zahlen, und auch andere Objekte. Es gibt da keine Begrenzung hinsichtlich der Anzahl der Parameter in einer fprintf-Anweisung.

Inhalt