Einfügen einer Variable in einen String in MATLAB

Ammar Ali 18 August 2022
Einfügen einer Variable in einen String in MATLAB

Dieses Tutorial behandelt das Einfügen eines Variablenwerts in einen String mit der Funktion num2str() in MATLAB.

Variable in Zeichenfolge in MATLAB einfügen

Wenn wir den Wert einer Variablen in einen String einfügen wollen, müssen wir den Wert mit der Funktion num2str() in einen String oder ein Array von Zeichen umwandeln und können ihn dann mit der Funktion strcat() Funktion. Lassen Sie uns zum Beispiel eine Fließkommazahl in einen String einfügen.

Siehe Code unten.

clc
clear

n = 100.577;
s1 = num2str(n);
s2 = "value is ";
s3 = strcat(s2,s1)

Ausgabe:

s3 =

    "value is 100.577"

Wir können auch die Genauigkeit oder die Anzahl der Stellen, die wir in der Ausgabe sehen möchten, hinzufügen, indem wir das zweite Argument der Funktion num2str() verwenden, und ihre Eingabe sollte eine positive Ganzzahl sein. Das zweite Argument legt die maximale Anzahl von Ziffern fest, die in eine Zeichenfolge konvertiert werden, und die Eingabe sollte eine Gleitkommazahl sein, wenn wir die Genauigkeit festlegen möchten.

Konvertieren wir beispielsweise nur die ersten 3 Elemente der Zahl in eine Zeichenfolge und verketten sie mit der anderen Zeichenfolge. Siehe Code unten.

clc
clear

n = 10.212;
s1 = num2str(n,3);
s2 = "value is ";
s3 = strcat(s2,s1)

Ausgabe:

s3 =

    "value is 10.2"

In der Ausgabe enthält der String s3 nur 3 Stellen der Gleitkommazahl, weil wir in der Funktion num3str() die Genauigkeit auf 3 gesetzt haben. Wenn wir die Genauigkeit nicht festlegen, konvertiert die Funktion num2str() die gesamte Zahl in ein Array von Zeichen.

Wir können auch die Formatierungsart der Eingabe wie die Anzahl der signifikanten Stellen bei Gleitkommazahlen über das Zeichen f mit dem Prozentzeichen einstellen und die Anzahl der signifikanten Stellen zwischen Prozent und f übergeben Charakter. Lassen Sie uns beispielsweise die lange Gleitkommazahl auf 2 signifikante Stellen runden und sie dann mit einer Zeichenfolge verketten.

Siehe Code unten.

clc
clear

n = 10.218;
s1 = num2str(n,'%0.2f');
s2 = "value is ";
s3 = strcat(s2,s1)

Ausgabe:

s3 =

    "value is 10.22"

Wir können in der obigen Ausgabe sehen, dass die Zahl auf zwei signifikante Stellen gerundet wird. Im obigen Code haben wir die Zeichenfolge mit doppelten Anführungszeichen definiert, aber wir können eine Zeichenfolge auch mit einfachen Anführungszeichen definieren.

Wir können auch mehrere Stiche in derselben Zeile mit der Funktion strcat() verketten. Wir müssen nur alle String-Variablen in der Funktion übergeben.

Wir können auch das Pluszeichen zwischen zwei oder mehr Zeichenfolgen verwenden, um sie zu verketten und eine einzelne Zeichenfolge zu erhalten. Im obigen Code haben wir manuell ein Leerzeichen zwischen der Zahl und der Zeichenfolge hinzugefügt, aber wenn wir die Zeichenfolge mit einfachen Anführungszeichen definieren, können wir kein Leerzeichen zwischen den beiden Variablen einfügen.

Wiederholen wir zum Beispiel das obige Beispiel mit einfachen Anführungszeichen. Siehe Code unten.

clc
clear

n = 10.218;
s1 = num2str(n);
s2 = 'value is ';
s3 = strcat(s2,s1)

Ausgabe:

s3 =

    'value is10.218'

In der obigen Ausgabe haben wir ein Leerzeichen in der Zeichenfolge s2 hinzugefügt, aber das Leerzeichen ist in der Zeichenfolge s3 nicht vorhanden. Wenn wir das Pluszeichen verwenden, ist die Ausgabe dieselbe.

Um dieses Problem zu vermeiden, sollte mindestens eine der zu verkettenden Zeichenfolgen eine Zeichenfolge und kein Zeichenvektor oder Array sein. Die Funktion num2str() gibt immer ein Zeichen-Array zurück, aber wir können die Funktion string() verwenden, um die Ausgabe als String zu erhalten.

Lassen Sie uns zum Beispiel die Funktion string() im obigen Beispiel verwenden. Siehe Code unten.

clc
clear

n = 10.218;
s1 = string(n);
s2 = 'value is ';
s3 = s2 + s1

Ausgabe:

s3 =

    "value is 10.218"

Wir können sehen, dass das Leerzeichen in der Ausgabe zwischen der Zahl und der Zeichenfolge vorhanden ist und die Ausgabe auch den Datentyp String aufweist. Wenn wir ein langes Array von Zeichen oder Zeichenfolgen haben und diese verbinden und ein Leerzeichen oder ein anderes Trennzeichen dazwischen einfügen möchten, können wir die Funktionen join() und strjoin() verwenden.

Wir können die Funktion join() verwenden, wenn sich die Werte, die wir verbinden möchten, in einem Vektor oder einer Matrix befinden, und wenn sich die Werte in einem Array befinden, müssen wir die Funktion strjoin() verwenden. Wir können Variablen verschiedener Datentypen mit der Funktion join() verbinden, aber wir müssen alle Variablen in einen einzigen Vektor oder eine einzelne Matrix einfügen und sie an die Funktion join() übergeben, um sie zu verbinden.

Lassen Sie uns beispielsweise einen String, ein Zeichenarray und einen numerischen Wert mit der Funktion join() verbinden. Siehe Code unten.

clc
clear

n = 100.55;
s1 = "Value is";
s2 = 'kg';
n = [s1,n,s2];
s = join(n)

Ausgabe:

s =

    "Value is 100.55 kg"

Beachten Sie, dass mindestens ein Wert der Variablen, die wir verknüpfen möchten, ein String sein sollte; Andernfalls kann sich das Ergebnis ändern. In der obigen Ausgabe wurden die drei Variablen miteinander verbunden; Das Ergebnis wird als Zeichenfolge gespeichert, da eine Eingabe eine Zeichenfolge ist.

Wir können auch die Funktion strjoin() verwenden, aber die Variablen, die wir verbinden möchten, sollten vom Datentyp Zeichen-Array sein und in einem Array eingeschlossen sein. Standardmäßig setzen die Funktionen join() und strjoin() Leerzeichen zwischen die Werte des Vektors oder Arrays, aber wir können auch andere Begrenzungszeichen und Zeichen verwenden, indem wir das zweite Argument der Funktionen join() und strjoin() verwenden.

Wir müssen das Trennzeichen als Zeichen-Array innerhalb der Funktion join() oder strjoin() übergeben, um es zwischen den Elementen des Vektors oder Arrays hinzuzufügen. Lassen Sie uns beispielsweise das obige Beispiel mit einem anderen Trennzeichen wiederholen.

Siehe Code unten.

clc
clear

n = 100.55;
s1 = "Value is";
s2 = 'kg';
n = [s1,n,s2];
s = join(n,'--')

Ausgabe:

s =

    "Value is--100.55--kg"

Wir können in der obigen Ausgabe sehen, dass das Eingabetrennzeichen anstelle des Leerzeichentrennzeichens zur Ausgabe hinzugefügt wird. Wir können auch einen String oder ein Zeichen-Array beliebiger Länge als Trennzeichen zwischen den Elementen der gegebenen Matrix oder des Arrays einfügen.

Wir können auch die Funktion sprintf() von Matlab verwenden, die verwendet wird, um formatierte Daten in einen String oder ein Zeichenarray einzufügen. Das erste Argument der Funktion sprintf() sind die Formatspezifikationen, und die nächsten Argumente sind die Variablen, die wir in ein String- oder Zeichenarray einfügen möchten.

Wenn die Formatangaben als String mit doppelten Anführungszeichen definiert sind, ist die Ausgabe der Funktion sprintf() ebenfalls ein String. Wenn die Formatangaben als Zeichen-Array mit einfachen Anführungszeichen definiert sind, ist die Ausgabe der Funktion sprintf() ebenfalls ein Zeichen-Array.

Wir können die Formatspezifikationen genauso verwenden, wie wir es oben im Fall der Funktion num2str() verwendet haben. Wir können das Prozentzeichen verwenden; Danach können wir die Feldbreite und dann den Datentyp übergeben.

Lassen Sie uns zum Beispiel mit der Funktion sprintf() verschiedene Datentypen Variablen zu einem String hinzufügen. Siehe Code unten.

clc
clear

n = 100.55;
s1 = "Value is";
s2 = 'kg';
s = sprintf("%s %0.1f %s",s1,n,s2)

Ausgabe:

s =

    "Value is 100.5 kg"

Im obigen Code haben wir %s für den Datentyp String und %f für den Datentyp Gleitkomma verwendet. Bei Fließkommazahlen haben wir auch die Anzahl der signifikanten Stellen definiert.

Im obigen Code haben wir die Strings in Variablen gespeichert und sie dann an die Funktion sprintf() übergeben, aber wir können Strings auch direkt in das erste Argument der Funktion schreiben. Im Fall von großen String-Variablen sollten wir sie der Einfachheit halber in Variablen speichern und innerhalb der Funktion sprintf() übergeben.

Wir können auch Symbole für andere Datentypen wie %c für Zeichen, %d für Ganzzahlen usw. verwenden. Überprüfen Sie diesen Link für weitere Details über die Funktion sprintf().

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook

Verwandter Artikel - MATLAB String