亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> MATLAB
MATLAB - 字符串

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

现场演示
my_string ='教程要点'

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

my_string =教程要点

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

whos

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

名称大小字节类属性my_string 1x16 32 char

有趣的是,您可以使用像 uint8 这样的数字转换函数 或 uint16 将字符串中的字符转换为其数字代码。 字符 函数将整数向量转换回字符 -

示例

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

现场演示
my_string ='Tutorial''s Point';str_ascii =uint8(my_string) % 8-bit ascii valuesstr_back_to_char=char(str_ascii) str_16bit =uint16(my_string) % 16-bit ascii values =char(str_16bit) 

当您运行该文件时,它会显示以下结果 -

<预类=“结果notranslate” 新增> str_ascii =84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116str_back_to_char =教程的Pointstr_16bit =84 117 116 111 114 105 97 108 39 115 32 80 111 105 110 116str_back_to_char =教程的点

矩形字符数组

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

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

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

示例

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

现场演示
doc_profile =['Zara Ali'; ……‘先生。外科医生'; ...'RN泰戈尔心脏病研究中心']doc_profile =char('Zara Ali', 'Sr. Surgeon', ...'RN泰戈尔心脏病研究中心')

当您运行该文件时,它会显示以下结果 -

doc_profile =Zara Ali 高级外科医生 R N 泰戈尔心脏病研究中心doc_profile =Zara Ali 高级外科医生 RN 泰戈尔心脏病研究中心

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

示例

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

现场演示
name ='Zara Ali';position ='Sr.外科医生'; worksAt ='R N 泰戈尔心脏病研究中心';profile =[name ', ' position ', 'worksAt]profile =strcat(name, ', ', position, ', ',worksAt)

当您运行该文件时,它会显示以下结果 -

profile =Zara Ali, Sr. Surgeon, R N Tagore Cardiology Research Centerprofile =Zara Ali,Sr.外科医生,RN泰戈尔心脏病学研究中心

将字符串组合成一个元胞数组

从我们之前的讨论中可以清楚地看出,组合不同长度的字符串可能会很痛苦,因为数组中的所有字符串都必须具有相同的长度。我们在字符串末尾使用了空格来均衡它们的长度。

但是,组合字符串的更有效方法是将结果数组转换为元胞数组。

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

cellstr 函数将字符数组转换为字符串元胞数组。

示例

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

现场演示
name ='Zara Ali';position ='Sr.外科医生'; worksAt ='R N 泰戈尔心脏病研究中心';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 提供了大量的字符串函数来创建、组合、解析、比较和操作字符串。

下表简要说明了 MATLAB 中的字符串函数 -

功能 目的
用于在字符数组中存储文本、组合字符数组等的函数
空白 创建一串空白字符
cellstr 从字符数组创建字符串元胞数组
char 转换为字符数组(字符串)
iscellstr 判断输入是否为字符串元胞数组
ischar 判断item是否为字符数组
sprintf 将数据格式化为字符串
strcat 水平连接字符串
strjoin 将元胞数组中的字符串连接成单个字符串
识别字符串部分、查找和替换子字符串的函数
ischar 判断item是否为字符数组
小岛 由字母组成的数组元素
isspace 作为空格字符的数组元素
isstrprop 判断字符串是否属于指定类别
sscanf 从字符串中读取格式化数据
strfind 在另一个字符串中查找一个字符串
strrep 查找和替换子串
strsplit 在指定的分隔符处分割字符串
strtok 字符串的选定部分
验证字符串 检查文本字符串的有效性
symvar 确定表达式中的符号变量
正则表达式 匹配正则表达式(区分大小写)
regexpi 匹配正则表达式(不区分大小写)
regexprep 使用正则表达式替换字符串
regexptranslate 将字符串翻译成正则表达式
字符串比较函数
strcmp 比较字符串(区分大小写)
strcmpi 比较字符串(不区分大小写)
strncmp 比较字符串的前 n 个字符(区分大小写)
strncmpi 比较字符串的前 n 个字符(不区分大小写)
将字符串更改为大写或小写、创建或删除空格的函数
去空白 从字符串末尾去除尾随空格
strtrim 从字符串中删除前导和尾随空格
将字符串转为小写
将字符串转换为大写
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 stringsstr_array ={'red','blue','green', 'yellow', 'orange'};% 将cell array中的字符串连接成单个stringstr1 =strjoin (str_array, "-")str2 =strjoin(str_array, ",")

当您运行该文件时,它会显示以下结果 -

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

查找和替换字符串

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

现场演示
students ={'Zara Ali', 'Neha Bhatnagar', ... 'Monica Malik', 'Madhu Gautam', ... 'Madhu Sharma', 'Bhawna Sharma', ...“努哈·阿里”、“雷娃·杜塔”、...“苏奈娜·阿里”、“索菲亚·卡比尔”}; % strrep 函数搜索并替换 sub-string.new_student =strrep(students(8), 'Reva', 'Poulomi')% 显示名字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 is equal', str1, str2) else sprintf('%s 和 %s 不相等', str1, str2)end

当您运行该文件时,它会显示以下结果 -

str1 =这是 teststr2 =这是 textans =这是测试和这是文本不相等

MATLAB

  1. MATLAB - 数组
  2. MATLAB - 绘图
  3. MATLAB - 决策
  4. MATLAB - 数据输出
  5. MATLAB - 字符串
  6. MATLAB - 基本语法