English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在MATLAB中创建字符串非常简单。实际上,我们已经使用了很多次。例如,您在命令提示符下键入以下内容-
my_string = 'oldtoolbag.com'
MATLAB将执行上述语句并返回以下结果-
my_string = oldtoolbag.com
MATLAB将所有变量视为数组,而字符串则视为字符数组。让我们使用whos命令来检查上面创建的变量-
whos
MATLAB将执行上述语句并返回以下结果-
Nom Taille Octets Classe Attributes my_string 1x16 32 char
有趣的是,您可以使用数字转换函数,例如uint8或uint16以将字符串中的字符转换为其数字代码。char函数将整数向量转换回字符-
Créez un fichier de script et tapez le code suivant à l'intérieur-
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)
Lors de l'exécution du fichier, il affiche les résultats suivants-
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
到目前为止,我们讨论的字符串是一维字符数组。但是,我们需要存储更多。我们需要在程序中存储更多维度的文本数据。这是通过创建矩形字符数组来实现的。
创建矩形字符数组的最简单方法是根据需要垂直或水平连接两个或多个一维字符数组。
您可以通过以下两种方式垂直组合字符串-
使用MATLAB连接运算符[],并用分号(;)分隔每一行。请注意,在此方法中,每行必须包含相同数量的字符。对于长度不同的字符串,应根据需要使用空格字符填充。
使用char函数。如果字符串的长度不同,char会用尾随空格填充较短的字符串,以便每行具有相同的字符数。
Créez un fichier de script et tapez le code suivant à l'intérieur-
doc_profile = ['Zara Ali '; ... 'Sr. Surgeon '; ... 'R N Tagore Cardiology Research Center'] doc_profile = char('Zara Ali', 'Sr. Surgeon', ... 'R N Tagore Cardiology Research Center')
Lors de l'exécution du fichier, il affiche les résultats suivants-
doc_profile = Zara Ali Sr. Surgeon R N Tagore Cardiology Research Center doc_profile = Zara Ali Sr. Surgeon RN Tagore Cardiology Research Center
Vous pouvez combiner les chaînes de manière horizontale de deux manières suivantes-
L'utilisation de l'opérateur de concaténation MATLAB[]et utilise des virgules ou des espaces pour séparer les chaînes d'entrée. Cette méthode conserve tous les espaces en fin de chaîne dans l'array d'entrée.
L'utilisation de la fonction de concaténation de chaînes strcat supprime les espaces en fin de chaîne d'entrée.
Créez un fichier de script et tapez le code suivant à l'intérieur-
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = [name ', ' position ', ' worksAt] profile = strcat(name, ', ', position, ', ', worksAt)
Lors de l'exécution du fichier, il affiche les résultats suivants-
profile = Zara Ali, Sr. Surgeon, R N Tagore Cardiology Research Center profile = Zara Ali, Sr. Surgeon, R N Tagore Cardiology Research Center
Il est évident à partir de la discussion précédente que fusionner des chaînes de caractères de longueurs différentes peut être gênant, car toutes les chaînes de caractères du tableau doivent avoir la même longueur. Nous avons utilisé des espaces à la fin des chaînes de caractères pour rendre leur longueur égale.
Cependant, la méthode plus efficace pour combiner des chaînes de caractères est de convertir l'array de résultats en tableau de cellules.
Les tableaux de cellules MATLAB peuvent stocker différents types et tailles de données dans un tableau.
cellstrLa fonction convertit un tableau de caractères en un tableau de cellules de chaînes de caractères.
Créez un fichier de script et tapez le code suivant à l'intérieur-
name = 'Zara Ali '; position = 'Sr. Surgeon '; worksAt = 'R N Tagore Cardiology Research Center'; profile = char(name, position, worksAt); profile = cellstr(profile); disp(profile)
Lors de l'exécution du fichier, il affiche les résultats suivants-
{ [1,1] = Zara Ali [2,1] = Sr. Surgeon [3,1] = R N Tagore Cardiology Research Center }
MATLAB fournit de nombreuses fonctions de chaînes de caractères, utilisées pour créer, combiner, analyser, comparer et manipuler des chaînes de caractères.
Le tableau suivant présente en bref les fonctions de chaînes de caractères dans MATLAB-
Fonction | Action |
---|---|
Fonctions utilisées pour stocker du texte dans un tableau de caractères, combiner des tableaux de caractères, etc. | |
blanks | Créer une chaîne de caractères de caractères blancs |
cellstr | Créer un tableau de cellules de chaînes de caractères à partir d'un tableau de caractères |
char | Convertir en tableau de caractères (chaîne de caractères) |
iscellstr | Déterminer si l'entrée est un tableau de cellules de chaîne de caractères |
ischar | Déterminer si un élément est un tableau de caractères |
sprintf | Formater les données en chaîne de caractères |
strcat | Joindre des chaînes de caractères horizontalement |
strjoin | Joindre des chaînes de caractères dans un seul chaîne de caractères à partir d'un tableau de cellules |
Reconnaître une partie de la chaîne de caractères, fonction de recherche et remplacement de sous-chaînes | |
ischar | Déterminer si un élément est un tableau de caractères |
isletter | Élément de tableau de caractères pour les lettres |
isspace | En tant qu'élément d'un tableau de caractères pour le caractère espace |
isstrprop | Déterminer si une chaîne de caractères appartient à une catégorie spécifiée |
sscanf | Lire des données formatées à partir d'une chaîne de caractères |
strfind | Trouver une chaîne de caractères dans une autre chaîne de caractères |
strrep | 查找并替换子字符串 |
strsplit | 在指定的分隔符处分割字符串 |
strtok | 字符串的选定部分 |
validatestring | 检查文本字符串的有效性 |
symvar | 确定表达式中的符号变量 |
regexp | 匹配正则表达式(区分大小写) |
regexpi | 匹配正则表达式(不区分大小写) |
regexprep | 使用正则表达式替换字符串 |
regexptranslate | 将字符串转换为正则表达式 |
字符串比较功能 | |
strcmp | 比较字符串(区分大小写) |
strcmpi | 比较字符串(不区分大小写) |
strncmp | 比较字符串的前n个字符(区分大小写) |
strncmpi | 比较字符串的前 n 个字符(不区分大小写) |
用于将字符串更改为大写或小写,创建或删除空格的函数 | |
deblank | 从字符串末尾去除尾随空白 |
strtrim | 删除字符串的前导和尾随空格 |
lower | 将字符串转换为小写 |
upper | 将字符串转换为大写 |
strjust | 对齐字符数组 |
以下示例说明了上述一些字符串函数-
Créez un fichier de script et tapez le code suivant à l'intérieur-
A = pi*1000*ones(1,5); sprintf(' %f \ %.2f \ %+.2f \ %12.2f \ %012.2f \ ', A)
Lors de l'exécution du fichier, il affiche les résultats suivants-
ans = 3141.592654 3141.59 +3141.59 3141.59 000003141.59
Créez un fichier de script et tapez le code suivant à l'intérieur-
%字符串单元格数组 str_array = {'red','blue','green', 'yellow', 'orange'}; %将单元格数组中的字符串合并为单个字符串 str1 = strjoin(str_array, ",");-)", str2 = strjoin(str_array, ",");
Lors de l'exécution du fichier, il affiche les résultats suivants-
str1 = red-blue-green-yellow-orange str2 = red,blue,green,yellow,orange
Créez un fichier de script et tapez le code suivant à l'intérieur-
students = {'Zara Ali', 'Neha Bhatnagar', ...} 'Monica Malik', 'Madhu Gautam', ... 'Madhu Sharma', 'Bhawna Sharma', ... 'Nuha Ali', 'Reva Dutta', ... 'Sunaina Ali', 'Sofia Kabir'; %La fonction strrep recherche et remplace les sous-chaînes. new_student = strrep(students(8), 'Reva', 'Poulomi') %Affichage des noms first_names = strtok(students
Lors de l'exécution du fichier, il affiche les résultats suivants-
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 }
Créez un fichier de script et tapez le code suivant à l'intérieur-
str1 = 'This is test' str2 = 'This is text' si (strcmp(str1, str2)) sprintf('%s and %s are equal', str1, str2) sinon sprintf('%s and %s are not equal', str1, str2) fin
Lors de l'exécution du fichier, il affiche les résultats suivants-
str1 = This is test str2 = This is text ans = This is test and This is text are not equal