新星计划MATLAB-字符串处理

Posted studyer_domi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新星计划MATLAB-字符串处理相关的知识,希望对你有一定的参考价值。

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

my_string = "Tutorials Point"

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

 

my_string = Tutorials Point

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

 

whos

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

 

Name           Size            Bytes  Class    Attributesmy_string      1x16               32  char

 

矩形字符数组

到目前为止我们探讨的字符string是一维字符数组; 但是,我们需要存储的不止一个。我们需要在我们的程序中存储更多的维度文本数据。这是通过创建矩形字符数组实现的。

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

您可以通过以下任一方式垂直组合字符string -

  • 使用MATLAB连接运算符[]并用分号(;)分隔每行。请注意,在这种方法中,每行必须包含相同数量的字符。对于不同长度的字符string,您应该根据需要填充空格字符。

  • 使用char函数。如果字符string的长度不同,则char将较短的字符string填充到尾部空白处,以使每行具有相同的字符数。

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

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

运行文件时,会显示以下结果 -​​​​​​​

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

您可以通过以下任一方式水平组合字符string -

  • 使用MATLAB连接运算符,[]并用逗号或空格分隔输入字符string。该方法保留输入数组中的任何尾随空格。

  • 使用字符string连接功能,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 Centerprofile = Zara Ali,Sr. Surgeon,R N Tagore Cardiology Research Center

将字符string组合成单元格数组

从我们之前的探讨中可以清楚的表明,组合不同长度的字符string可能会很痛苦,因为数组中的所有字符string都必须具有相同的长度。我们在字符string的末尾使用了空格,使其长度相等。

然而,组合字符string的更有效的方法是将生成的数组转换为单元格数组。

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

cellstr的函数转换字符数组成字符string的单元数组。

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

name =     "Zara Ali                             ";position = "Sr. Surgeon                          "; worksAt =  "R N Tagore Cardiology Research Center";profile = char(strcat(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中的字符string函数

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

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

功能目的
用于将文本存储在字符数组中,组合字符数组等的功能
空白创建空白字符的字符string
char转换为字符数组(字符string)
iscellstr确定输入是字符string的单元格数组
sprintf将数据格式化为字符string
strcat水平连接字符string
strjoin将单元格数组中的字符string连接到单个字符string中
识别字符string部分的函数,查找和替换子string
isspace数组元素是空格
isstrprop确定字符string是否是指定的类别
sscanf从字符string读取格式化数据
strfind在另一个中找到一个字符string
strrep查找并替换子string
strsplit在指定的分隔符处拆分字符string
strtok字符string的选定部分
symvar确定表达式中的符号变量
regexprep使用正则表达式替换字符string
字符string比较功能
strcmp比较字符string(区分大小写)
strcmpi比较字符string(不区分大小写)
strncmp比较字符string的前n个字符(区分大小写)
strncmpi比较字符string的前n个字符(不区分大小写)
将字符string更改为大写或小写的功能,创建或删除空格
deblank从字符string末尾剥去尾随空白
strtrim从字符string中删除前导和尾随的空格

例子

以下示例说明了一些上述字符string函数 -

格式化字符string

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

​​​​​​​

A = pi*1000*ones(1,5);sprintf(" %f %.2f %+.2f %12.2f %012.2f ", A)

运行文件时,会显示以下结果 -

图片

连接字符string

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

​​​​​​​

%cell array of stringsstr_array = {'red','blue','green', 'yellow', 'orange'};% Join strings in cell array into single stringstr1 = strjoin(str_array, "-")str2 = strjoin(str_array, ",")

运行文件时,会显示以下结果 -

​​​​​​​

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

查找和替换字符string

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

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 namesfirst_names = strtok(students)

运行文件时,会显示以下结果

图片

比较字符string

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

​​​​​​​

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 teststr2 = This is textans = This is test and This is text are not equal

以上是关于新星计划MATLAB-字符串处理的主要内容,如果未能解决你的问题,请参考以下文章

新星计划Matlab实现数据导出

新星计划MATLAB-微积分

新星计划MATLAB-冒号:符号详解

新星计划MATLAB绘制图形

新星计划MATLAB-定义函数

新星计划MATLAB-多项式计算