Matlab 中的字符(char)和字符串(string)

目录


一、数据类型定义:向量(char)vs 变量(string)

Matlab 中可以通过一对单引号或一对双引号来创建字符(char)或字符串(string)。

Matlab 中的字符(char)和字符串(string)

 字符变量(char)可以被当做一个由字符组成的一维向量,字符串(string)则是一个变量。利用 char() 和 string() 函数可以对字符串和字符变量相互转换。[1]

Matlab 中的字符(char)和字符串(string)

二、不同之处

在很多情况下两者可以互换,下面主要关注两者应用的不同之处。

1. 字符和字符串的串联:[ ] 或 strcat( ) 

可以直接用左右方括号([])对字符(char)进行串联,对字符串(string)的串联则需要用到函数 strcat( ) 。因为字符串是一个变量,用方括号串联只能得到m x n 字符串数组或向量。

Matlab 中的字符(char)和字符串(string)

 Matlab 中的字符(char)和字符串(string)

 2. 多行数组:用分号(;)或换行完成

Matlab 中的字符(char)和字符串(string)

需要注意:直接生成字符(串)数组时,char 数组每一行的个数必须相同,string 数组则不需要。(为什么说 “直接生成”,因为在使用函数 str2mat 创建字符(串)数组的时候,不用担心每一行的字符个数是否相等,函数在运行中会以字符最多的一行为准,而将其他行中的字符以空格补齐。可见本节第 4 点示例中的对比。)[2]

Matlab 中的字符(char)和字符串(string)

 3. 字符串中输入单引号

两个单引号相当于一个单引号,但只能用’ ”right” ‘(char),不能用 ” ”wrong” “(string)

Matlab 中的字符(char)和字符串(string)

4. 重复出现的元素

实际工作中经常遇到一系列字符串有重复出现的固定片段,这时就可以用 repmat() 函数来简化表达。下面给出几个例子:

Matlab 中的字符(char)和字符串(string)

补充:前两个例子不用 repmat() 函数所得结果相同。即也可以写成:

strcat("N",string([1:11]'))
strcat("N",num2str([1:11]'))

 

三、相关函数

字符串相关函数简表

创建

strcat字符串组合
strvcat竖直方向字符串组合
repmat重复

比较

strcmp判断两个字符串是否相等。
strncmp判断两个字符串的前n个字符是否相等。
strcmpi和strncmpi分别与strcmp和strncmp相同,只是在比较的过程中忽略了字母大小写。

查找替换

findstr返回某一子串在整个字符串中的开始位置
strrep一般的字符串查找与替换
strmatch查找符合要求的行
strtok查找某个字符最先出现的位置

引用

[1]MATLAB中字符变量(char)和字符串变量(string)的异同_TifLil的博客-CSDN博客_matlab字符串变量

[2]MATLAB字符和字符串 – 简书 (jianshu.com)

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年3月23日 上午8:40
下一篇 2023年3月23日 上午8:41

相关推荐