MATLAB - Zeichenfolgen
Das Erstellen einer Zeichenkette ist in MATLAB recht einfach. Tatsächlich haben wir es viele Male verwendet. Geben Sie beispielsweise Folgendes in die Eingabeaufforderung ein −
Live-Demomy_string = 'Tutorials Point'
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
my_string = Tutorials Point
MATLAB betrachtet alle Variablen als Arrays und Strings als Zeichen-Arrays. Lassen Sie uns das whos verwenden Befehl, um die oben erstellte Variable zu überprüfen −
whos
MATLAB führt die obige Anweisung aus und gibt das folgende Ergebnis zurück −
Name Size Bytes Class Attributes my_string 1x16 32 char
Interessanterweise können Sie numerische Konvertierungsfunktionen wie uint8 verwenden oder uint16 um die Zeichen in der Zeichenfolge in ihre numerischen Codes umzuwandeln. Der char Funktion wandelt den Integer-Vektor zurück in Zeichen −
Beispiel
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demomy_string = 'Tutorial''s Point'; str_ascii = uint8(my_string) % 8-bit ascii values str_back_to_char= char(str_ascii) str_16bit = uint16(my_string) % 16-bit ascii values str_back_to_char = char(str_16bit)
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
str_ascii = 84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116 str_back_to_char = Tutorial's Point str_16bit = 84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116 str_back_to_char = Tutorial's Point
Rechteckiges Zeichenarray
Die bisher besprochenen Strings sind eindimensionale Zeichen-Arrays; Wir müssen jedoch mehr als das speichern. Wir müssen mehr dimensionale Textdaten in unserem Programm speichern. Dies wird erreicht, indem rechteckige Zeichenfelder erstellt werden.
Die einfachste Art, ein rechteckiges Zeichenarray zu erstellen, besteht darin, zwei oder mehr eindimensionale Zeichenarrays zu verketten, je nach Bedarf entweder vertikal oder horizontal.
Sie können Zeichenfolgen auf eine der folgenden Arten vertikal kombinieren −
-
Verwenden des MATLAB-Verkettungsoperators [] und trennen Sie jede Zeile mit einem Semikolon (;). Bitte beachten Sie, dass bei dieser Methode jede Zeile die gleiche Anzahl von Zeichen enthalten muss. Bei Zeichenfolgen mit unterschiedlichen Längen sollten Sie bei Bedarf mit Leerzeichen auffüllen.
-
Mit dem char Funktion. Wenn die Zeichenfolgen unterschiedlich lang sind, füllt char die kürzeren Zeichenfolgen mit abschließenden Leerzeichen auf, sodass jede Zeile die gleiche Anzahl von Zeichen enthält.
Beispiel
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demodoc_profile = ['Zara Ali '; ... 'Sr. Surgeon '; ... 'R N Tagore Cardiology Research Center'] doc_profile = char('Zara Ali', 'Sr. Surgeon', ... 'RN Tagore Cardiology Research Center')
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
doc_profile = Zara Ali Sr. Surgeon R N Tagore Cardiology Research Center doc_profile = Zara Ali Sr. Surgeon RN Tagore Cardiology Research Center
Sie können Zeichenfolgen auf eine der folgenden Arten horizontal kombinieren −
-
Verwenden des MATLAB-Verkettungsoperators [] und Trennen der Eingabezeichenfolgen durch ein Komma oder ein Leerzeichen. Diese Methode behält alle abschließenden Leerzeichen in den Eingabearrays bei.
-
Verwenden der Zeichenfolgenverkettungsfunktion strcat . Diese Methode entfernt nachgestellte Leerzeichen in den Eingaben.
Beispiel
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demoname = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = [name ', ' position ', ' worksAt] profile = strcat(name, ', ', position, ', ', worksAt)
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
profile = Zara Ali , Sr. Surgeon , R N Tagore Cardiology Research Center profile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center
Kombinieren von Strings zu einem Cell Array
Aus unserer vorherigen Diskussion ist klar, dass das Kombinieren von Zeichenfolgen mit unterschiedlichen Längen mühsam sein kann, da alle Zeichenfolgen im Array dieselbe Länge haben müssen. Wir haben Leerzeichen am Ende von Strings verwendet, um ihre Länge auszugleichen.
Eine effizientere Methode zum Kombinieren der Zeichenfolgen besteht jedoch darin, das resultierende Array in ein Zellenarray umzuwandeln.
MATLAB-Zellenarrays können unterschiedliche Größen und Typen von Daten in einem Array enthalten. Zellenarrays bieten eine flexiblere Möglichkeit, Zeichenfolgen unterschiedlicher Länge zu speichern.
Die cellstr Funktion konvertiert ein Zeichen-Array in ein Zellen-Array von Strings.
Beispiel
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demoname = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = char(name, position, worksAt); profile = cellstr(profile); disp(profile)
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
{ [1,1] = Zara Ali [2,1] = Sr. Surgeon [3,1] = R N Tagore Cardiology Research Center }
String-Funktionen in MATLAB
MATLAB bietet zahlreiche String-Funktionen zum Erstellen, Kombinieren, Analysieren, Vergleichen und Manipulieren von Strings.
Die folgende Tabelle enthält eine kurze Beschreibung der Zeichenfolgenfunktionen in MATLAB −
Funktion | Zweck |
---|---|
Funktionen zum Speichern von Text in Zeichenfeldern, Kombinieren von Zeichenfeldern usw. | |
Leerzeichen | Kette aus Leerzeichen erstellen |
cellstr | Zell-Array von Strings aus Zeichen-Array erstellen |
Zeichen | In Zeichen-Array (String) umwandeln |
iscellstr | Bestimmen Sie, ob die Eingabe ein Zellenarray von Zeichenfolgen ist |
ischar | Bestimmen Sie, ob das Element ein Zeichenarray ist |
sprintf | Daten in Zeichenfolge formatieren |
strcat | Strings horizontal verketten |
strjoin | Strings im Zellenarray zu einem einzigen String zusammenfügen |
Funktionen zum Identifizieren von Teilen von Strings, Suchen und Ersetzen von Teilstrings | |
ischar | Bestimmen Sie, ob das Element ein Zeichenarray ist |
Inselbuchstabe | Array-Elemente, die alphabetische Buchstaben sind |
Isspace | Array-Elemente, die Leerzeichen sind |
isstrprop | Ermittle, ob die Zeichenfolge der angegebenen Kategorie angehört |
sscanf | Formatierte Daten aus String lesen |
strfind | Einen String in einem anderen finden |
strrep | Teilstring suchen und ersetzen |
strsplit | String am angegebenen Trennzeichen aufteilen |
strtok | Ausgewählte Teile des Strings |
Validierungszeichenfolge | Gültigkeit der Textzeichenfolge prüfen |
symvar | Symbolische Variablen im Ausdruck bestimmen |
regulärer Ausdruck | Übereinstimmung mit regulärem Ausdruck (Groß-/Kleinschreibung beachten) |
Regexpi | Übereinstimmung mit regulärem Ausdruck (Groß-/Kleinschreibung wird nicht beachtet) |
regexprep | String durch regulären Ausdruck ersetzen |
regexptranslate | String in regulären Ausdruck übersetzen |
Funktionen zum String-Vergleich | |
strcmp | Strings vergleichen (Groß-/Kleinschreibung beachten) |
strcmpi | Strings vergleichen (Groß-/Kleinschreibung nicht beachten) |
strncmp | Erste n Zeichen von Strings vergleichen (Groß-/Kleinschreibung beachten) |
strncmpi | Vergleiche die ersten n Zeichen von Strings (Groß-/Kleinschreibung wird nicht beachtet) |
Funktionen zum Ändern von Zeichenfolgen in Groß- oder Kleinbuchstaben, Erstellen oder Entfernen von Leerzeichen | |
deblank | Nachlaufende Leerzeichen vom Ende der Zeichenfolge entfernen |
strtrim | Entfernen Sie führende und abschließende Leerzeichen aus der Zeichenfolge |
unten | Zeichenfolge in Kleinbuchstaben umwandeln |
oben | String in Großbuchstaben umwandeln |
strjust | Zeichenreihe ausrichten |
Beispiele
Die folgenden Beispiele veranschaulichen einige der oben erwähnten String-Funktionen −
Zeichenfolgen formatieren
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-DemoA = pi*1000*ones(1,5); sprintf(' %f \n %.2f \n %+.2f \n %12.2f \n %012.2f \n', A)
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
ans = 3141.592654 3141.59 +3141.59 3141.59 000003141.59
Strings verbinden
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demo%cell array of strings str_array = {'red','blue','green', 'yellow', 'orange'}; % Join strings in cell array into single string str1 = strjoin(str_array, "-") str2 = strjoin(str_array, ",")
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
str1 = red-blue-green-yellow-orange str2 = red,blue,green,yellow,orange
Strings suchen und ersetzen
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demostudents = {'Zara Ali', 'Neha Bhatnagar', ... 'Monica Malik', 'Madhu Gautam', ... 'Madhu Sharma', 'Bhawna Sharma',... 'Nuha Ali', 'Reva Dutta', ... 'Sunaina Ali', 'Sofia Kabir'}; % The strrep function searches and replaces sub-string. new_student = strrep(students(8), 'Reva', 'Poulomi') % Display first names first_names = strtok(students)
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
new_student = { [1,1] = Poulomi Dutta } first_names = { [1,1] = Zara [1,2] = Neha [1,3] = Monica [1,4] = Madhu [1,5] = Madhu [1,6] = Bhawna [1,7] = Nuha [1,8] = Reva [1,9] = Sunaina [1,10] = Sofia }
Strings vergleichen
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein −
Live-Demostr1 = 'This is test' str2 = 'This is text' if (strcmp(str1, str2)) sprintf('%s and %s are equal', str1, str2) else sprintf('%s and %s are not equal', str1, str2) end
Wenn Sie die Datei ausführen, zeigt sie das folgende Ergebnis an −
str1 = This is test str2 = This is text ans = This is test and This is text are not equal
MATLAB