目录
从 R2016b 开始,可以使用字符串数组而不是字符数组来表示文本。字符串数组的每个元素存储一个字符序列。序列可以具有不同长度,无需填充,例如 "yes" 和 "no"。只有一个元素的字符串数组也称为字符串标量。
可以按照标准数组运算对字符串数组进行索引、重构和串联,还可以使用 + 运算符向字符串追加文本。如果字符串数组表示数字,则可以使用 double 函数将其转换为数值数组。
创建对象
可以通过用双引号括起一段文本来创建字符串。从 R2017a 开始引入双引号。
str = "Hello, world"
str =
"Hello, world"
创建字符串数组的一种方法是使用方括号将字符串串联成数组,就像将数字串联成数值数组一样。
str = ["Mercury","Gemini","Apollo";
"Skylab","Skylab B","ISS"]
str = 2x3 string
"Mercury" "Gemini" "Apollo"
"Skylab" "Skylab B" "ISS"
也可以按如下所述,使用 string 函数将不同数据类型的变量转换成字符串数组。
语法
str = string(A)
str = string(D)
str = string(D,fmt)
str = string(A) 将输入数组转换为字符串数组。
str = string(D) 以 D 的 Format 属性指定的格式将日期时间、持续时间或日历持续时间数组转换为字符串数组。输出在每行中包含一个日期或持续时间。
str = string(D,fmt) 以指定的格式(例如 'HH:mm:ss')表示日期或持续时间。
str = string(D,fmt,locale) 以指定的区域设置(例如 'en_US')表示日期或持续时间。区域设置会影响用于表示字符串(例如月份和日期名称)的语言。
示例
拆分字符串并查找唯一单词
要查找字符串中的唯一单词,请在空格字符处拆分字符串,然后调用 unique 函数。
首先创建一个字符串标量。
str = "A horse! A horse! My kingdom for a horse!"
str =
"A horse! A horse! My kingdom for a horse!"
删除感叹号。
str = erase(str,"!")
str =
"A horse A horse My kingdom for a horse"
将 str 中的所有字母转换为小写字符。
str = lower(str)
str =
"a horse a horse my kingdom for a horse"
使用 split 函数在空格字符处拆分 str。split 将丢弃空格字符,并以字符串数组形式返回结果。
str = split(str)
str = 9x1 string
"a"
"horse"
"a"
"horse"
"my"
"kingdom"
"for"
"a"
"horse"
使用 unique 函数查找 str 中的唯一单词。
str = unique(str)
str = 5x1 string
"a"
"for"
"horse"
"kingdom"
"my"
转换字符向量
A = 'Four score and seven years ago'
A =
'Four score and seven years ago'
str = string(A)
str =
"Four score and seven years ago"
str 包含与 A 相同的字符。但是,A 是字符向量,而 str 是字符串标量。
c = size(A)
c = 1×2
1 30
s = size(str)
s = 1×2
1 1
要返回 str 中的字符数,使用 strlength 函数。
n = strlength(str)
n = 30
转换元胞数组
将字符向量元胞数组转换为字符串数组。
A = {'Mercury','Gemini','Apollo';...
'Skylab','Skylab B','ISS'}
A = 2x3 cell
{'Mercury'} {'Gemini' } {'Apollo'}
{'Skylab' } {'Skylab B'} {'ISS' }
str = string(A)
str = 2x3 string
"Mercury" "Gemini" "Apollo"
"Skylab" "Skylab B" "ISS"
要访问 str 的第一行中的第二个元素,请使用圆括号进行索引。可以通过矩阵索引访问字符串数组中的字符串,就像访问数值数组的元素一样。
str(1,2)
ans =
"Gemini"
访问第三列。
str(:,3)
ans = 2x1 string
"Apollo"
"ISS"
转换数值数组
A = [77 65 84 76 65 66]
A = 1×6
77 65 84 76 65 66
str = string(A)
str = 1x6 string
"77" "65" "84" "76" "65" "66"
str 是字符串数组,其中每个元素表示 A 中的一个数值。请注意,string 不会像 char 函数那样将数字视为 ASCII 或 Unicode® 值。
转换表示数字的字符串
创建一个字符串数组,其中每个元素代表一个数字。要将字符串数组转换为数值数组,请使用 double 函数。
str = ["256","3.1416","8.9e-3"]
str = 1x3 string
"256" "3.1416" "8.9e-3"
X = double(str)
X = 1×3
256.0000 3.1416 0.0089
当输入参数为字符串数组时,double 函数会将每个元素视为一个浮点值的表示形式。但是,当输入是字符数组时,double 会将每个字符转换为表示其 Unicode® 值的数字。
也可以使用 str2double 函数。当输入参数可能是字符串数组、字符向量或字符向量元胞数组时,适合使用 str2double。
Y = str2double(str)
Y = 1×3
256.0000 3.1416 0.0089
C = '2.7183';
Z = str2double(C)
Z = 2.7183
转换持续时间数组
创建一个 duration 数组。
D = hours(23:25) + minutes(8) + seconds(1.2345)
D = 1x3 duration
23.134 hr 24.134 hr 25.134 hr
将 D 转换为字符串数组。
str = string(D)
str = 1x3 string
"23.134 hr" "24.134 hr" "25.134 hr"
str 是每个元素对应一个持续时间值的字符串数组。str 的大小与 D 相同。
指定 str 中的持续时间值的格式。
str = string(D,'hh:mm')
str = 1x3 string
"23:08" "24:08" "25:08"
提示
-
有关在字符串数组中创建和处理文本的函数列表,可以参考字符和字符串。
-
如果输入参数是对象,则它必须属于实现 string 方法来将对象表示为字符串的类。