Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Konvertieren numerischer Werte in Text

Dieses Beispiel zeigt, wie Sie numerische Werte in Text umwandeln und an größere Textstücke anhängen können. Sie können zum Beispiel eine Beschriftung oder einen Titel zu einem Diagramm hinzufügen, wobei die Beschriftung eine Zahl enthält, die ein Merkmal des Diagramms beschreibt.

Konvertieren in Zeichenfolgen

Verwenden Sie die string-Funktion, um eine Zahl in eine Zeichenfolge umzuwandeln, die sie repräsentiert.

str = string(pi)
str = 
"3.1416"

Die string-Funktion konvertiert ein numerisches Array in ein String Array mit derselben Größe.

A = [256 pi 8.9e-3];
str = string(A)
str = 1×3 string
    "256"    "3.141593"    "0.0089"

Sie können das Format des Ausgabetextes mit der Funktion compose festlegen, die Formatangaben für Genauigkeit, Feldbreite und exponentielle Schreibweise akzeptiert.

str = compose("%9.7f",pi)
str = 
"3.1415927"

Wenn die Eingabe ein numerisches Array ist, dann gibt compose ein String Array zurück. Geben Sie ein String Array zurück, das Zahlen in Exponentialschreibweise darstellt.

A = [256 pi 8.9e-3];
str = compose("%5.2e",A)
str = 1×3 string
    "2.56e+02"    "3.14e+00"    "8.90e-03"

Hinzufügen von Zahlen zu Zeichenfolgen

Der einfachste Weg, Text und Zahlen zu kombinieren, ist die Verwendung des plus-Operators (+). Dieser Operator konvertiert numerische Werte automatisch in Zeichenfolgen, wenn die anderen Operanden Zeichenfolgen sind.

Plotten Sie zum Beispiel eine Sinuswelle. Berechnen Sie die Frequenz der Welle und fügen Sie eine Zeichenfolge, die diesen Wert repräsentiert, in den Diagrammtitel ein.

X = linspace(0,2*pi);
Y = sin(X);
plot(X,Y)
freq = 1/(2*pi);
str = "Sine Wave, Frequency = " + freq + " Hz"
str = 
"Sine Wave, Frequency = 0.15915 Hz"
title(str)

Figure contains an axes object. The axes object with title Sine Wave, Frequency = 0.15915 Hz contains an object of type line.

Manchmal wird vorhandener Text in Zeichenvektoren oder Zellen-Arrays von Zeichenvektoren gespeichert. Allerdings konvertiert der plus-Operator diese Datentypen auch automatisch in Zeichenfolgen, wenn ein anderer Operand eine Zeichenfolge ist. Um numerische Werte mit diesen Datentypen zu kombinieren, konvertieren Sie zunächst die numerischen Werte in Zeichenfolgen und verwenden Sie dann plus, um den Text zu kombinieren.

str = 'Sine Wave, Frequency = ' + string(freq) + {' Hz'}
str = 
"Sine Wave, Frequency = 0.15915 Hz"

Zeichen-Codes

Falls Ihre Daten Ganzzahlen enthalten, die Unicode®-Werte darstellen, verwenden Sie die char-Funktion, um die Werte in die entsprechenden Zeichen umzuwandeln. Die Ausgabe ist ein Zeichenvektor oder -Array.

u = [77 65 84 76 65 66];
c = char(u)
c = 
'MATLAB'

Die Konvertierung von Unicode-Werten ermöglicht es Ihnen auch, Sonderzeichen in den Text aufzunehmen. Der Unicode-Wert für das Grad-Symbol ist zum Beispiel 176. Zum Hinzufügen von char(176) zu einer Zeichenfolge verwenden Sie plus.

deg = char(176);
temp = 21;
str = "Temperature: " + temp + deg + "C"
str = 
"Temperature: 21°C"

Hexadezimale und binäre Werte

Sie können hexadezimale und binäre Werte in Ihrem Code entweder durch Text oder durch Literale darstellen. Es wird empfohlen, sie als Literale zu schreiben. Sie können hexadezimale und binäre Literale schreiben, indem Sie die Präfixe 0x und 0b verwenden. Manchmal kann es jedoch nützlich sein, solche Werte als Text darzustellen, indem man die dec2hex- oder dec2bin-Funktion nutzt.

Setzen Sie zum Beispiel ein Bit in einem Binärwert. Wenn Sie den Binärwert anhand eines Literals angeben, wird er als Ganzzahl gespeichert. Nachdem Sie eines der Bits festgelegt haben, zeigen Sie den neuen Binärwert mit der dec2bin-Funktion als Text an.

register = 0b10010110
register = uint8

150
register = bitset(register,5,0)
register = uint8

134
binStr = dec2bin(register)
binStr = 
'10000110'

Siehe auch

| | | | |

Themen