English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MATLAB-Zeichenkette

在MATLAB中创建字符串非常简单。实际上,我们已经使用了很多次。例如,您在命令提示符下键入以下内容-

my_string = 'oldtoolbag.com'

MATLAB将执行上述语句并返回以下结果-

my_string = oldtoolbag.com

MATLAB将所有变量视为数组,而字符串则视为字符数组。让我们使用whos命令来检查上面创建的变量-

whos

MATLAB将执行上述语句并返回以下结果-

Name Size Bytes Class Attributes
my_string      1x16               32  char

有趣的是,您可以使用数字转换函数,例如uint8uint16以将字符串中的字符转换为其数字代码。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

Rechteckiges Zeichencarrierraster

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

Zeichenketten in ein Zellenarray einfügen

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                                 
}

Zeichenkettenfunktionen in MATLAB

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.-

FunktionWirkung
Funktionen zum Speichern von Text in Zeichenarrays, zur Kombination von Zeichenarrays usw.
blanks

Eine Zeichenkette aus Leerzeichen erstellen

cellstrEin Zellenarray aus Zeichenarrays erstellen
char

In ein Zeichenarray (Zeichenkette) umwandeln

iscellstrBestimmen, ob die Eingabe ein Zellenarray von Zeichenketten ist
ischarBestimmen, ob ein Element ein Zeichenarray ist
sprintfDaten in eine Zeichenkette formatieren
strcatHorizontale Verbindung von Zeichenketten
strjoinZeichenketten in einem Zellenarray verbinden
Ein Teil der Zeichenkette erkennen, Funktionen zum Suchen und Ersetzen von Unterzeichenketten
ischarBestimmen, ob ein Element ein Zeichenarray ist
isletterAls Arrayelement von Buchstaben
isspaceAls Arrayelement von Leerzeichen
isstrpropBestimmen, ob eine Zeichenkette einer bestimmten Kategorie angehört
sscanfFormatierte Daten aus einer Zeichenkette lesen
strfindIn 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
}

Stringvergleich

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