MATLAB - 字符串(Strings)

MATLAB - 字符串(Strings) 首页 / MATLAB入门教程 / MATLAB - 字符串(Strings)

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

my_string='Learnfk Point'

MATLAB将执行上述语句并返回以下输出-

my_string=Learnfk Point

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

whos

MATLAB将执行上述语句并返回以下输出-

Name           Size            Bytes  Class    Attributes
my_string      1x16               32  char

有趣的是,您可以使用数字转换函数,例如 uint8 或 uint16 ,将字符串中的字符转换为数字代码, char 函数将整数向量转换回字符-

创建一个脚本文件并在其中键入以下代码-

无涯教程网

my_string='Learnfk''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)  

运行文件时,它显示以下输出-

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=Learnfk's Point

矩形字符数组

到目前为止,我们讨论的字符串是一维字符数组。但是,我们需要存储更多,我们通过创建矩形字符数组来实现的。

创建矩形字符数组的最简单方法是根据需要垂直或水平连接两个或多个一维字符数组。

创建一个脚本文件并在其中键入以下代码-

无涯教程网

doc_profile=['Zara Ali                             '; ...
               'Sr. Surgeon                          '; ...
               'R N Tagore Cardiology Research Center']
doc_profile=char('Zara Ali', 'Sr. Surgeon', ...
                  'RN Tagore Cardiology Research Center')

运行文件时,它显示以下输出-

doc_profile =
Zara Ali                             
Sr. Surgeon                          
R N Tagore Cardiology Research Center
doc_profile =
Zara Ali                            
Sr. Surgeon                         
RN Tagore Cardiology Research Center

您可以通过以下两种方式水平组合字符串-

链接:https://www.learnfk.comhttps://www.learnfk.com/matlab/matlab-strings.html

来源:LearnFk无涯教程网

  • 使用MATLAB串联运算符 [] ,并用逗号或空格分隔输入字符串,此方法保留输入数组中的所有尾随空格。

  • 使用字符串连接函数 strcat ,此方法删除输入中的尾随空格。

创建一个脚本文件并在其中键入以下代码-

无涯教程网

name=    'Zara Ali                             ';
position='Sr. Surgeon                          '; 
worksAt= 'R N Tagore Cardiology Research Center';
profile=[name ', ' position ', ' worksAt]
profile=strcat(name, ', ', position, ', ', worksAt)

运行文件时,它显示以下输出-

profile=Zara Ali      , Sr. Surgeon      , R N Tagore Cardiology Research Center
profile=Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center

合并到数组

MATLAB单元数组可以在数组中保存不同大小和类型的数据,单元阵列提供了一种更灵活的方式来存储长度可变的字符串。

cellstr 函数将字符数组转换为字符串的单元格数组。

创建一个脚本文件并在其中键入以下代码-

无涯教程网

name=    'Zara Ali                             ';
position='Sr. Surgeon                          '; 
worksAt= 'R N Tagore Cardiology Research Center';
profile=char(name, position, worksAt);
profile=cellstr(profile);
disp(profile)

运行文件时,它显示以下输出-

{                                                                               
   [1,1]=Zara Ali                                                              
   [2,1]=Sr. Surgeon                                                           
   [3,1]=R N Tagore Cardiology Research Center                                 
}   

字符串函数

MATLAB提供了许多字符串函数,用于创建,组合,解析,比较和操作字符串。

下表简要介绍了MATLAB中的字符串函数-

函数用途
用于在字符数组中存储文本,组合字符数组等的函数。
blanks创建空白字符字符串
cellstr从字符数组创建字符串的单元格数组
char转换为字符数组(字符串)
iscellstr确定输入是否为字符串的单元格数组
ischar确定项目是否为字符数组
sprintf将数据格式化为字符串
strcat水平连接字符串
strjoin将单元格数组中的字符串连接为单个字符串
用于识别字符串部分,查找和替换子字符串的函数
ischar确定项目是否为字符数组
isletter是字母的数组元素
isspace是空格字符的数组元素
isstrprop确定字符串是否属于指定类别
sscanf从字符串中读取格式化的数据
strfind在另一个字符串中查找一个字符串
strrep查找并替换子字符串
strsplit在指定分隔符处分割字符串
strtok选定的字符串部分
validatestring检查文本字符串的有效性
symvar确定表达式中的符号变量
regexp匹配正则表达式(区分大小写)
regexpi匹配正则表达式(不区分大小写)
regexprep使用正则表达式替换字符串
regexptranslate将字符串转换为正则表达式
用于字符串比较的函数
strcmp比较字符串(区分大小写)
strcmpi比较字符串(不区分大小写)
strncmp比较字符串的前n个字符(区分大小写)
strncmpi比较字符串的前n个字符(不区分大小写)
用于将字符串更改为大写或小写,创建或删除空格的函数
deblank从字符串末尾剥离尾随空白
strtrim从字符串中删除开头和结尾的空格
lower将字符串转换为小写
upper将字符串转换为大写
strjust调整字符数组

格式化字符串

创建一个脚本文件并在其中键入以下代码-
A=pi*1000*ones(1,5);
sprintf(' %f\n %.2f\n %+.2f\n %12.2f\n %012.2f\n', A)

运行文件时,它显示以下输出-

ans= 3141.592654 
   3141.59 
   +3141.59 
      3141.59 
   000003141.59 

连接字符串

创建一个脚本文件并在其中键入以下代码-
%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, ",")

运行文件时,它显示以下输出-

str1=red-blue-green-yellow-orange
str2=red,blue,green,yellow,orange

查找和替换字符串

创建一个脚本文件并在其中键入以下代码-
students={'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)

运行文件时,它显示以下输出-

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
}

比较字符串

创建一个脚本文件并在其中键入以下代码-
str1='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

运行文件时,它显示以下输出-

str1=This is test
str2=This is text
ans=This is test and This is text are not equal

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

Nginx核心知识150讲 -〔陶辉〕

程序员的数学基础课 -〔黄申〕

安全攻防技能30讲 -〔何为舟〕

WebAssembly入门课 -〔于航〕

基于人因的用户体验设计课 -〔刘石〕

如何读懂一首诗 -〔王天博〕

eBPF核心技术与实战 -〔倪朋飞〕

技术领导力实战笔记 2022 -〔TGO 鲲鹏会〕

互联网人的数字化企业生存指南 -〔沈欣〕

好记忆不如烂笔头。留下您的足迹吧 :)