
与该页面相对应的英语页面已更新,但尚未翻译. 要查看最新内容,请单击此处访问英语页面.
R2016b中引入了字符串数组. 字符串数组可以存储文本片段,并提供一组将文本作为数据处理的功能. 您可以像其他类型的数组一样对字符串数组进行索引,重构和连接. 此外,您可以访问字符串中的字符,并使用加号运算符将文本追加到字符串中. 要重新排列字符串数组中的字符串,请使用诸如split,join和sort等功能.
MATLAB®提供了一个字符串数组来存储文本片段. 字符串数组的每个元素都包含一个1×n个字符的序列.
从R2017a开始,您可以使用双引号创建字符串.
str = "Hello, world"
str = "Hello, world"
作为替代,您可以使用字符串函数将字符向量转换为字符串. chr是1×17字符向量. str是1×1的字符串,其文本与字符向量相同.
chr = 'Greetings, friend'
chr = 'Greetings, friend'
str = string(chr)
str = "Greetings, friend"
使用[]运算符创建包含多个字符串的字符串数组. str是包含六个字符串的2×3字符串数组.
str = ["Mercury","Gemini","Apollo"; "Skylab","Skylab B","ISS"]
str = 2x3 string array
"Mercury" "Gemini" "Apollo"
"Skylab" "Skylab B" "ISS"
通过strlength函数计算str中每个字符串的长度. 使用strlength而不是length来确定字符串中的字符数.
L = strlength(str)
L = 2×3
7 6 6
6 8 3
作为替代,您可以使用字符串函数将字符向量的单元格数组转换为字符串数组. MATLAB使用双引号在字符串数组中显示字符串,并使用单引号在单元格数组中显示字符向量.
C = {'Mercury','Venus','Earth'}
C = 1x3 cell array
{'Mercury'} {'Venus'} {'Earth'}
str = string(C)

str = 1x3 string array
"Mercury" "Venus" "Earth"
除了字符向量外,您还可以使用字符串函数将数字值,日期时间,持续时间和分类值转换为字符串.
将数字数组转换为字符串数组.
X = [5 10 20 3.1416]; string(X)
ans = 1x4 string array
"5" "10" "20" "3.1416"
将日期和时间值转换为字符串.
d = datetime('now');
string(d)
ans = "30-Jul-2019 17:12:01"
此外,您可以使用readtable,textscan和fscanf函数将文件中的文本读取到字符串数组中.
字符串数组可以包含空值和缺失值. 空字符串不包含任何字符. 当显示一个空字符串时,结果是一对不包含任何内容的双引号(“”). 缺少的字符串等效于数字数组的NaN. 它指示字符串数组包含缺失值的位置. 当显示缺少的字符串时,结果为
使用字符串函数创建一个空字符串数组. 当不带任何参数调用字符串时,将返回一个空字符串. 请注意,str的大小为1×1,而不是0×0. 但是,str不包含字符.
str = strings
str = ""
使用单引号创建一个空字符向量. 请注意,chr的大小为0×0.
chr = ''
chr = 0x0 empty char array
创建一个字符串数组,其元素均为空字符串. 您可以使用字符串函数来预分配字符串数组.
str = strings(2,3)
str = 2x3 string array
"" "" ""
"" "" ""
要创建缺少的字符串,请使用字符串函数转换缺少的值. 缺少的字符串显示为
str = string(missing)

str = <missing>
您可以创建一个包含空字符串和缺失字符串的字符串数组. 使用ismissing函数确定哪些元素是包含缺失值的字符串. 请注意,空字符串不会缺少字符串.
str(1) = ""; str(2) = "Gemini"; str(3) = string(missing)
str = 1x3 string array
"" "Gemini" <missing>
ismissing(str)
ans = 1x3 logical array
0 0 1
将丢失的字符串与另一个字符串进行比较. 即使您将一个缺少的字符串与另一个字符串进行比较,结果也始终为0(假).
str = string(missing);
str == "Gemini"
ans = logical
0
str == string(missing)
ans = logical
0
字符串数组支持数组操作,例如索引和重建. 使用数组索引访问str的第一行和所有列.
str = ["Mercury","Gemini","Apollo"; "Skylab","Skylab B","ISS"]; str(1,:)
ans = 1x3 string array
"Mercury" "Gemini" "Apollo"
访问str的第二行中的第二个元素.
str(2,2)
ans = "Skylab B"
在str边界之外分配了一个新字符串. MATLAB将扩展数组,并使用缺少的值填充未分配的元素.
str(3,4) = "Mir"
str = 3x4 string array
"Mercury" "Gemini" "Apollo" <missing>
"Skylab" "Skylab B" "ISS" <missing>
<missing> <missing> <missing> "Mir"
您可以使用大括号{}来索引字符串数组以直接访问字符. 当您需要访问和修改字符串元素中的字符时,请使用花括号. 通过花括号索引可以为可处理字符向量的字符串数组或单元格数组的代码提供兼容性. 但是,请尽可能使用字符串函数来处理字符串中的字符.

使用花括号访问第二行中的第二个元素. chr是字符向量,而不是字符串.
str = ["Mercury","Gemini","Apollo"; "Skylab","Skylab B","ISS"]; chr = str{2,2}
chr = 'Skylab B'
访问字符向量并返回前三个字符.
str{2,2}(1:3)
ans = 'Sky'
找到字符串中的空格字符,然后将这些字符替换为破折号. 使用isspace函数检查字符串中的单个字符. isspace将返回逻辑向量,只要有一个空格字符,该向量就包含一个真值. 最后,显示修改后的字符串元素str(2,2).
TF = isspace(str{2,2})
TF = 1x8 logical array
0 0 0 0 0 0 1 0
str{2,2}(TF) = "-";
str(2,2)
ans = "Skylab-B"
请注意,在此示例中,您还可以使用replace函数替换空格而无需使用大括号.
replace(str(2,2)," ","-")
ans = "Skylab-B"
将字符串连接到字符串数组中,就像将任何其他类型的数组连接起来一样.
使用方括号[]连接两个字符串数组.
str1 = ["Mercury","Gemini","Apollo"]; str2 = ["Skylab","Skylab B","ISS"]; str = [str1 str2]
str = 1x6 string array
"Mercury" "Gemini" "Apollo" "Skylab" "Skylab B" "ISS"
转置str1和str2. 连接它们,然后将列标题垂直连接到字符串数组. 将字符向量连接到字符串数组时,字符向量将自动转换为字符串.
str1 = str1'; str2 = str2'; str = [str1 str2]; str = [["Mission:","Station:"] ; str]
str = 4x2 string array
"Mission:" "Station:"
"Mercury" "Skylab"
"Gemini" "Skylab B"
"Apollo" "ISS"

要将文本附加到字符串,请使用加号+. 加号运算符可以将文本追加到字符串,但不会更改字符串数组的大小.
将姓氏添加到名字数组中. 如果将字符向量附加到字符串,则字符向量将自动转换为字符串.
names = ["Mary";"John";"Elizabeth";"Paul";"Ann"]; names = names + ' Smith'
names = 5x1 string array
"Mary Smith"
"John Smith"
"Elizabeth Smith"
"Paul Smith"
"Ann Smith"
附加不同的姓氏. 您可以将文本从字符向量的字符串数组或单元格数组追加到另一个字符串数组. 添加非标量数组时matlab读字符串,这些数组的大小必须相同.
names = ["Mary";"John";"Elizabeth";"Paul";"Ann"]; lastnames = ["Jones";"Adams";"Young";"Burns";"Spencer"]; names = names + " " + lastnames
names = 5x1 string array
"Mary Jones"
"John Adams"
"Elizabeth Young"
"Paul Burns"
"Ann Spencer"
添加缺少的字符串. 当您使用加号运算符添加缺少的字符串时,输出为缺少的字符串.
str1 = "Jones";
str2 = string(missing);
str1 + str2
ans = <missing>
MATLAB提供了一组丰富的函数来处理字符串数组. 例如,您可以使用split,join和sort函数重新排列字符串数组的名称,以便按姓氏的字母顺序排列名称.
用空格字符分隔名称. 拆分会将名称从5×1的字符串数组更改为5×2的数组.
names = ["Mary Jones";"John Adams";"Elizabeth Young";"Paul Burns";"Ann Spencer"]; names = split(names)
names = 5x2 string array
"Mary" "Jones"
"John" "Adams"
"Elizabeth" "Young"
"Paul" "Burns"
"Ann" "Spencer"
交换名称列matlab读字符串,以使姓氏在第一列中. 在每个姓氏后面添加一个逗号.
names = [names(:,2) names(:,1)];
names(:,1) = names(:,1) + ','
names = 5x2 string array
"Jones," "Mary"
"Adams," "John"
"Young," "Elizabeth"
"Burns," "Paul"
"Spencer," "Ann"
连接名字和姓氏. join函数在其连接的字符串之间放置一个空格字符. 连接后,名称是5×1的字符串数组.
names = join(names)
names = 5x1 string array
"Jones, Mary"
"Adams, John"
"Young, Elizabeth"
"Burns, Paul"
"Spencer, Ann"
对名称元素进行排序,以使它们按字母顺序排列.
names = sort(names)
names = 5x1 string array
"Adams, John"
"Burns, Paul"
"Jones, Mary"
"Spencer, Ann"
"Young, Elizabeth"
争吵| isspace |加入|加|排序|分裂字符串字符串|长度
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-231353-1.html
让这种无良商家自生自灭吧
#杨洋icon##杨洋微微一笑很倾城##杨洋肖奈##杨洋轻奢young#
有利于彻底根治