Hauptinhalt

num2str

R2026b

Konvertieren von Zahlen zu Zeichenarrays

Beschreibung

Hinweis

Zum Kombinieren von numerischen Skalaren und Text wird string über num2str empfohlen. Kombinieren Sie Zeichenfolgen und numerische Werte mit dem „+“-Operator, um die Lesbarkeit zu verbessern. Weitere Informationen finden Sie unter Alternative Funktionen.

s = num2str(A) wandelt ein numerisches Array in ein Zeichenarray um, das die Zahlen darstellt. Das Ausgabeformat hängt von den Beträgen der ursprünglichen Werte ab. num2str eignet sich zum Beschriften und Betiteln von Diagrammen mit numerischen Werten.

Beispiel

s = num2str(A,precision) gibt ein Zeichenarray zurück, das die Zahlen mit der Höchstanzahl der signifikanten Stellen darstellt, die durch precision angegeben sind.

Beispiel

s = num2str(A,formatSpec) wendet ein durch formatSpec angegebenes Format auf alle Elemente von A an.

Hinweis

Wenn bereits ein Format angegeben ist, fügt s zwischen den Elementen von A keine Leerschritte ein. Fügen Sie Leerschritte zum Format hinzu, damit sie berücksichtigt werden.

Beispiel

Beispiele

alle reduzieren

Konvertieren Sie die von pi und eps zurückgegebenen Gleitkommawerte in Zeichenvektoren.

s = num2str(pi)
s = 
'3.1416'
s = num2str(eps)
s = 
'2.2204e-16'

Geben Sie die Präzision der Höchstanzahl der signifikanten Stellen in Gleitkommawerten an.

rng('default')
A = randn([2,2]);
s = num2str(A,3)
s = 2×15 char array
    '0.538     -2.26'
    ' 1.83     0.862'

Zeigen Sie pi mit der angegebenen Präzision als Gleitkommazahl an.

formatSpec = '%.2f';
s = num2str(pi,formatSpec)
s = 
'3.14'

Eingabeargumente

alle reduzieren

Eingabearray, angegeben als numerisches Array.

Datentypen: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Unterstützung komplexer Zahlen: Ja

Höchstanzahl der signifikanten Stellen in der ausgegebenen Zeichenfolge, angegeben als positive Ganzzahl.

Hinweis

Wenn Sie angeben, dass precision die Genauigkeit des eingegebenen Gleitkommadatentyps ü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.

Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Format der Ausgabefelder, festgelegt mithilfe von Formatierungsoperatoren. formatSpec kann auch normalen Text und Sonderzeichen enthalten.

Wenn formatSpec Literaltext enthält, der Escape-Zeichen wie \n darstellt, wandelt num2str die Escape-Zeichen um.

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.

WerttypKonvertierungDetails

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.

Ausgabeargumente

alle reduzieren

Textdarstellung des Eingabearrays, zurückgegeben als Zeichenarray.

Tipps

  • num2str akzeptiert im Eingabeargument formatSpec keine positionsbezogenen Bezeichner. Beispielsweise gibt num2str([14 15],'%2$X %1$o) einen Fehler zurück.

    Positionsbezogene Bezeichner geben die Reihenfolge an, in der der Formatierungsoperator Eingabeargumente der Funktion verarbeitet. Sie geben nicht die Elemente des Eingabearrays an. Wenn Sie num2str aufrufen, verfügt nur ein Eingabeargument über zu konvertierende Zahlen.

  • Wenn Sie ungültige Formatierungsoperatoren oder Sonderzeichen angeben, gibt num2str den gesamten Text bis zum ungültigen Operator oder Zeichen aus und verwirft den Rest.

    Beispiel: Wenn formatSpec 'value = %z' ist, gibt num2str 'value =' aus, da %z kein Formatierungsoperator ist.

    Beispiel: Wenn formatSpec 'character \x99999 = %s' ist, gibt num2str 'character' aus, da \x99999 kein gültiges Sonderzeichen ist.

  • Zum Konvertieren numerischer Werte in Text im Rahmen der Eingabe in eval wird mat2str empfohlen.

Algorithmen

num2str entfernt Leerschritte vor einem Zeichenarray auch dann, wenn formatSpec eine Leerzeichen-Flag enthält. Beispielsweise gibt num2str(42.67,'% 10.2f') ein 1x5-Zeichenarray '42.67' zurück.

Alternative Funktionen

Ändern Sie Code, numerische Skalare und Text mit num2str kombiniert, so, dass er stattdessen string verwendet. Numerische Werte können mithilfe des +-Operators mit Zeichenfolgen kombiniert werden. Beispiel:

Nicht empfohlenEmpfohlen
newstr = ['The value is ' num2str(4.5)]
newstr =

    'The value is 4.5'
newstr = "The value is " + 4.5
newstr =

    "The value is 4.5"

Erweiterte Fähigkeiten

alle erweitern

Versionsverlauf

Eingeführt vor R2006a

alle erweitern