English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在MATLAB中创建字符串非常简单。实际上,我们已经使用了很多次。例如,您在命令提示符下键入以下内容-
my_string = 'oldtoolbag.com'
MATLAB将执行上述语句并返回以下结果-
my_string = oldtoolbag.com
MATLAB将所有变量视为数组,而字符串则视为字符数组。让我们使用whos命令来检查上面创建的变量-
whos
MATLAB将执行上述语句并返回以下结果-
Name Size Bytes Class Attributes my_string 1x16 32 char
有趣的是,您可以使用数字转换函数,例如uint8或uint16以将字符串中的字符转换为其数字代码。char函数将整数向量转换回字符-
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
my_string = 'w3codebox''s com'; str_ascii = uint8(my_string) %8位 ascii 值 str_back_to_char = char(str_ascii) str_16bit = uint16(my_string) %16位ascii值 str_back_to_char = char(str_16bit)
Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt-
str_ascii = 110 104 111 111 111 39 115 32 99 111 109 str_back_to_char = w3codebox's com str_16bit = 110 104 111 111 111 39 115 32 99 111 109 str_back_to_char = w3codebox's com
Bis jetzt haben wir über ein-dimensionalen Zeichencarrierraster gesprochen. Aber wir müssen mehr speichern. Wir müssen mehrdimensionale Textdaten im Programm speichern. Dies wird durch die Erstellung eines rechteckigen Zeichencarrierrasters erreicht.
Die einfachste Methode, ein rechteckiges Zeichencarrierraster zu erstellen, ist die Vertikal- oder Horizontalkombination von zwei oder mehreren ein-dimensionalen Zeichencarrierrastern nach Bedarf.
Sie können Strings auf zwei Arten vertikal kombinieren-
Mit dem MATLAB-Verknüpfungsoperator [] und mit einem Semikolon (;) getrennt. Bitte beachten Sie, dass in dieser Methode jede Zeile die gleiche Anzahl von Zeichen enthalten muss. Für Strings unterschiedlichster Länge müssen Sie entsprechend Leerzeichen verwenden, um auszufüllen.
Mit der char-Funktion. Wenn die Länge der Strings unterschiedlich ist, füllt char den kürzeren String mit Nachfolgenden Leerzeichen auf, damit jede Zeile die gleiche Anzahl von Zeichen hat.
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
doc_profile = ['Zara Ali '; ... 'Oberarzt '; ... 'R N Tagore Kardiologie Forschungszentrum'] 'R N Tagore Kardiologie Forschungszentrum')
Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt-
doc_profile = Zara Ali Oberarzt R N Tagore Kardiologie Forschungszentrum doc_profile = Zara Ali Oberarzt R N Tagore Kardiologie Forschungszentrum
Sie können Strings auf zwei Arten horizontal kombinieren-
Mit dem MATLAB-Kombinationsoperator[]und mit Komma oder Leerzeichen getrennt. Diese Methode behält alle nachfolgenden Leerzeichen im Eingabe-Array bei.
Mit Hilfe der Zeichenkettenkombinationsfunktion strcat wird am Ende der Eingabe Leerzeichen entfernt.
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; Profil = [name ', ' position ', ' worksAt] Profil = strcat(name, ', ', position, ', ', worksAt)
Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt-
Profil = Zara Ali, Oberarzt, R N Tagore Kardiologie Forschungszentrum Profil = Zara Ali, Oberarzt, R N Tagore Kardiologie Forschungszentrum
Aus der vorangegangenen Diskussion ist明显 erkennbar, dass das Kombinieren von Zeichenketten verschiedener Längen sehr lästig sein kann, da alle Zeichenketten im Array die gleiche Länge haben müssen. Wir haben am Ende der Zeichenketten Leerzeichen verwendet, um ihre Länge zu angleichen.
Eine effizientere Methode zur Kombination von Zeichenketten ist jedoch, das Ergebnisarray in ein Zellenarray umzuwandeln.
MATLAB-Zellenarrays können verschiedene Größen und Typen von Daten in einem Array speichern. Zellenarrays bieten eine flexiblere Methode, um variable Längen von Zeichenketten zu speichern.
cellstrDie Funktion wandelt Zeichenarrays in Zellenarrays von Zeichenketten um.
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
name = '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, wird das folgende Ergebnis angezeigt-
{ [1,1] = Zara Ali [2,1] = Sr. Surgeon [3,1] = R N Tagore Cardiology Research Center }
MATLAB bietet viele Zeichenkettenfunktionen, um Zeichenketten zu erstellen, zu kombinieren, zu analysieren, zu vergleichen und zu verarbeiten.
Die nachstehende Tabelle gibt eine kurze Einführung in die Zeichenkettenfunktionen von MATLAB.-
Funktion | Wirkung |
---|---|
Funktionen zum Speichern von Text in Zeichenarrays, zur Kombination von Zeichenarrays usw. | |
blanks | Eine Zeichenkette aus Leerzeichen erstellen |
cellstr | Ein Zellenarray aus Zeichenarrays erstellen |
char | In ein Zeichenarray (Zeichenkette) umwandeln |
iscellstr | Bestimmen, ob die Eingabe ein Zellenarray von Zeichenketten ist |
ischar | Bestimmen, ob ein Element ein Zeichenarray ist |
sprintf | Daten in eine Zeichenkette formatieren |
strcat | Horizontale Verbindung von Zeichenketten |
strjoin | Zeichenketten in einem Zellenarray verbinden |
Ein Teil der Zeichenkette erkennen, Funktionen zum Suchen und Ersetzen von Unterzeichenketten | |
ischar | Bestimmen, ob ein Element ein Zeichenarray ist |
isletter | Als Arrayelement von Buchstaben |
isspace | Als Arrayelement von Leerzeichen |
isstrprop | Bestimmen, ob eine Zeichenkette einer bestimmten Kategorie angehört |
sscanf | Formatierte Daten aus einer Zeichenkette lesen |
strfind | In einem anderen String eine Zeichenkette suchen |
strrep | 查找并替换子字符串 |
strsplit | 在指定的分隔符处分割字符串 |
strtok | 字符串的选定部分 |
validatestring | 检查文本字符串的有效性 |
symvar | 确定表达式中的符号变量 |
regexp | 匹配正则表达式(区分大小写) |
regexpi | 匹配正则表达式(不区分大小写) |
regexprep | 使用正则表达式替换字符串 |
regexptranslate | 将字符串转换为正则表达式 |
字符串比较功能 | |
strcmp | 比较字符串(区分大小写) |
strcmpi | 比较字符串(不区分大小写) |
strncmp | 比较字符串的前n个字符(区分大小写) |
strncmpi | 比较字符串的前 n 个字符(不区分大小写) |
用于将字符串更改为大写或小写,创建或删除空格的函数 | |
deblank | 从字符串末尾去除尾随空白 |
strtrim | 删除字符串的前导和尾随空格 |
lower | 将字符串转换为小写 |
upper | 将字符串转换为大写 |
strjust | 对齐字符数组 |
以下示例说明了上述一些字符串函数-
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
A = pi*1000*ones(1,5); sprintf(' %f \ %.2f \ %+.2f \ %12.2f \ %012.2f \ ', A)
Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt-
ans = 3141.592654 3141.59 +3141.59 3141.59 000003141.59
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
%字符串单元格数组 str_array = {'red','blue','green', 'yellow', 'orange'}; %将单元格数组中的字符串合并为单个字符串 str1 = strjoin(str_array, ",");-)", str2 = strjoin(str_array, ",");
Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt-
str1 = red-blue-green-yellow-orange str2 = red,blue,green,yellow,orange
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
students = {'Zara Ali', 'Neha Bhatnagar', ...} 'Monica Malik', 'Madhu Gautam', ... 'Madhu Sharma', 'Bhawna Sharma', ... 'Nuha Ali', 'Reva Dutta', ... 'Sunaina Ali', 'Sofia Kabir'; %Die Funktion strrep sucht nach und ersetzt Unterstrings. new_student = strrep(students(8), 'Reva', 'Poulomi') %Anzeigen der Namen first_names = strtok(students
Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt-
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 }
Erstellen Sie eine Skriptdatei und geben Sie den folgenden Code ein-
str1 = 'Dies ist Test' str2 = 'Dies ist Text' if (strcmp(str1, str2)) sprintf('%s und %s sind gleich', str1, str2) else sprintf('%s und %s sind nicht gleich', str1, str2) end
Wenn Sie die Datei ausführen, wird das folgende Ergebnis angezeigt-
str1 = Dies ist Test str2 = Dies ist Text ans = Dies ist Test und Dies ist Text sind nicht gleich