formatSpec kann ein in einfachen Anführungszeichen eingeschlossener Zeichenvektor oder ein Zeichenfolgenskalar sein.
Formatierungsoperator
Formatierungsoperatoren beginnen mit einem Prozentzeichen, %, und enden mit einem Konvertierungszeichen. Das Konvertierungszeichen ist erforderlich. Optional können Sie Operatoren für Kennungen, Flags, Feldbreite, Genauigkeit und Untertyp zwischen % und dem Konvertierungszeichen angeben. (Leerzeichen zwischen den Operatoren sind ungültig und werden hier nur zur besseren Lesbarkeit angezeigt).
Konvertierungszeichen
Diese Tabelle zeigt Konvertierungszeichen zur Formatierung von numerischen Daten und Zeichendaten als Text.
| Werttyp | Konvertierung | Details |
|---|
Ganzzahl, vorzeichenbehaftet | %d oder %i
| Basis 10 |
Ganzzahl, vorzeichenlos | %u
| Basis 10 |
%o
| Basis 8 (oktal) |
%x
| Basis 16 (hexadezimal), Kleinbuchstaben a–f |
%X
| Identisch zu %x, Großbuchstaben A–F |
Gleitkommazahl | %f
| Festkommaschreibweise (Verwenden Sie einen Präzisionsoperator, um die Anzahl der Nachkommastellen anzugeben.) |
%e
| Exponentialschreibweise, z. B. 3.141593e+00 (Verwenden Sie einen Präzisionsoperator, um die Anzahl der Nachkommastellen anzugeben.) |
%E
| Identisch zu %e, aber in Großbuchstaben, z. B. 3.141593E+00 (Verwenden Sie einen Präzisionsoperator, um die Anzahl der Nachkommastellen anzugeben.) |
%g
| %e oder %f, je nachdem, welche der beiden Optionen kompakter ist, ohne nachgestellte Nullstellen (Verwenden Sie einen Präzisionsoperator, um die Anzahl der signifikanten Stellen anzugeben.)
|
%G
| %E oder %f, je nachdem, welche der beiden Optionen kompakter ist, ohne nachgestellte Nullstellen (Verwenden Sie einen Präzisionsoperator, um die Anzahl der signifikanten Stellen anzugeben.)
|
Zeichen oder Zeichenfolgen | %c
| Einzelnes Zeichen |
%s
| Zeichenvektor oder String Array. Der Ausgabetext weist denselben Typ wie formatSpec auf. |
Optionale Operatoren
Die optionalen Operatoren für Kennungen, Flags, Feldbreite, Genauigkeit und Untertyp definieren das Format des Ausgabetextes weiter.
Kennung
Hinweis: Im Unterschied zur Funktion sprintf unterstützt num2str keine Bezeichner.
Flags
'–'
| Linksbündig.
Beispiel: %-5.2f
Beispiel: %-10s |
'+'
| Immer ein Vorzeichen (+ oder -) für jeden numerischen Wert drucken.
Beispiel: %+5.2f
Text rechtsbündig ausrichten.
Beispiel: %+10s |
' '
| Ein Leerzeichen vor dem Wert einfügen.
Beispiel: % 5.2f |
'0'
| Auf die Feldbreite mit führenden Nullstellen auffüllen.
Beispiel: %05.2f |
'#'
| Ausgewählte numerische Konvertierungen ändern: Für %o, %x bzw. %X den Präfix 0, 0x bzw. 0X drucken. Für %f, %e bzw. %E den Dezimalpunkt drucken, auch wenn die Genauigkeit 0 ist. Für %g oder %G keine nachgestellten Nullstellen oder das Dezimalkomma entfernen.
Beispiel: %#5.0f |
Feldbreite
Mindestanzahl der zu druckenden Zeichen.
Beispiel: '%5d' druckt intmax als 2147483647, da der von intmax zurückgegebene Wert die Mindestanzahl der zu druckenden Zeichen überschreitet.
Wenn die Anzahl der zu druckenden Zeichen kleiner als die Feldbreite ist, füllt compose die Feldbreite mit Leerschritten vor dem Wert auf, sofern nicht durch Flags anders angegeben.
Die num2str-Funktion hingegen füllt die Feldbreite nicht mit Leerschritten auf.
Präzision
Anzahl der zu druckenden Stellen.
Für %f, %e oder %E | Anzahl der Ziffern rechts vom Dezimalkomma
Beispiel: '%.4f' gibt pi als '3.1416' aus |
Für %g oder %G | Anzahl der signifikanten Stellen
Beispiel: '%.4g' gibt pi als '3.142' aus |
Beispiel: '%6.4f' druckt pi als '3.1416'.
Hinweis
Wenn Sie einen Präzisionsoperator für Gleitkommawerte angeben, der die Genauigkeit des numerischen Eingabedatentyps überschreitet, stimmen die Ergebnisse möglicherweise nicht mit der von Ihnen angegebenen Präzision mit den Eingabewerten überein. Das Ergebnis hängt von Ihrer Computerhardware und Ihrem Betriebssystem ab.
Untertypen
Sie können einen Untertyp-Operator verwenden, um einen Gleitkommawert als oktalen, dezimalen oder hexadezimalen Wert auszugeben. Der Untertyp-Operator steht unmittelbar vor dem Konvertierungszeichen. Diese Tabelle zeigt die Konvertierungen, die Untertypen verwenden können.
Eingabewerttyp | Untertyp und Konvertierungszeichen | Ausgabewerttyp |
|---|
Gleitkommazahl | %bx oder %bX
%bo
%bu
| Hexadezimaler, oktaler oder dezimaler Wert mit doppelter Präzision
Beispiel: %bx gibt pi als 400921fb54442d18 aus |
%tx oder %tX
%to
%tu
| Hexadezimaler, oktaler oder dezimaler Wert mit einfacher Präzision
Beispiel: %tx gibt pi als 40490fdb aus |
Text vor oder nach Formatierungsoperatoren
formatSpec kann auch zusätzlichen Text vor einem Prozentzeichen % oder nach einem Konvertierungszeichen enthalten. Der Text kann sein:
Gewöhnlicher Text zum Drucken.
Bestimmte Sonderzeichen, die Sie nicht als gewöhnlichen Text eingeben können. Diese Tabelle zeigt, wie Sie Sonderzeichen in formatSpec darstellen können.
Sonderzeichen | Darstellung |
|---|
Einfaches Anführungszeichen (Hochkomma) | ''
|
Prozentzeichen | %%
|
Backslash | \\
|
Alarm | \a
|
Rückschritt | \b
|
Seitenvorschub | \f
|
Zeilenvorschub (neue Zeile) | \n
|
Wagenrücklauf | \r
|
Horizontaltabulator | \t
|
Vertikaltabulator | \v
|
Zeichen, dessen numerischer Unicode®-Wert durch die Hexadezimalzahl N dargestellt werden kann | \xN
Beispiel: num2str('\x5A') gibt 'Z' zurück |
Zeichen, dessen numerischer Unicode-Wert durch die Oktalzahl N dargestellt werden kann | \N
Beispiel: num2str('\132') gibt 'Z' zurück |
ANSI-Escapesequenzen S zur Angabe von Textstil und Textfarbe. Trennen Sie mehrere Codes mithilfe von Semikola und löschen Sie die Stilvorgabe mit dem Code 0. | \x1b[Sm
Beispiel: num2str("\x1b[1;34mBold blue text\x1b[0m") gibt Bold blue text zurück und löscht anschließend den Stil. Die ANSI-Escapesequenz 1 stellt Text in Fettdruck und 34 blauen Text dar. |
Bemerkenswertes Verhalten bei Konvertierungen mit Formatierungsoperatoren
Wenn Sie einen Wert angeben, der nicht in die Konvertierung passt, z. B. einen nicht-ganzzahligen numerischen Wert für eine Textkonvertierung, kann MATLAB® die angegebene Konvertierung übersteuern.
Beispiel: '%s' konvertiert pi in 3.141593e+00.
Wenn Sie eine Textkonvertierung (entweder %c oder %s) auf ganzzahlige Werte anwenden, konvertiert MATLAB Werte, die gültigen Zeichencodes entsprechen, in Zeichen.
Beispiel: '%s' konvertiert [65 66 67] in ABC.