创建字符串数组

字符串数组在R2016b中引入。字符串数组存储文本片段,并提供一组将文本作为数据处理的函数。您可以对字符串数组进行索引、重新定义和连接,就像对任何其他类型的数组一样。属性还可以访问字符串中的字符并将文本附加到字符串中操作符。要在字符串数组中重新排列字符串,请使用以下函数分裂加入分类

从变量创建字符串数组

MATLAB®提供字符串数组来存储文本片段。字符串数组的每个元素都包含一个1乘n的字符序列。

从R2017a开始,可以使用双引号创建字符串。

海峡=“你好,世界”
海峡=“你好,世界”

作为替代方案,可以使用一个特征向量转换为字符串字符串函数。CHR是一个1×17个字符的向量。str是具有相同的文字的字符向量的1乘1串。

CHR =“你好,朋友”
CHR ='问候,朋友
STR =串(CHR)
海峡=“你好,朋友”

创建包含使用所述多个字符串的字符串数组[]操作符。str是包含6串的2×3字符串数组。

海峡= [“水星”“双子座”“阿波罗”;“天空实验室”“天空实验室B”“ISS”]
海峡=2 x3字符串“汞”“双子”“阿波罗”的“天空实验室”,“天空实验室B”“ISS”

中每个字符串的长度strstrlength函数。使用strlength,而不是长度,以确定字符的字符串中的数字。

L = strlength(STR)
L =2×37 6 6 6 8 3

方法可以将字符向量的单元数组转换为字符串数组字符串函数。MATLAB使用双引号在字符串数组中显示字符串,使用单引号在单元格数组中显示字符向量。

C = {'汞'“金星”“地球”}
C =1×3单元{“水星”}{“金星”}{‘地球’}
字符串str = (C)
海峡=1 x3字符串“水星”,“金星”,“地球”

除了特征向量,就可以数字,日期时间,持续时间和分类值转换为用绳线字符串函数。

转换数字数组到字符串数组。

X = [5 10 20 3.1416];字符串(X)
ANS =1 x4字符串"5" "10" "20" "3.1416"

将日期时间值转换为字符串。

d =日期时间(“现在”);串(d)
ANS = “29-FEB-2020 0时09分23秒”

属性还可以将文本从文件读取到字符串数组中readtabletextscan的fscanf功能。

创建空的和缺失的字符串

字符串数组可以包含空值和缺失值。空字符串不包含任何字符。当显示空字符串时,结果是一对双引号,中间没有任何东西(“”)。丢失的字符串等于为NaN对于数字阵列。它表示在该字符串数组有缺失值。当您显示一个丢失的字符串,其结果是<失踪>,不带引号。

创建使用一个空字符串数组字符串函数。您打电话的时候字符串不带任何参数,它返回一个空字符串。需要注意的是大小str是1×1,而不是0逐0。然而,str包含零个字符。

字符串str =
海峡=“”

使用单引号创建一个空字符向量。需要注意的是大小CHR是0逐0。

CHR =“”
CHR =为0x0空字符数组

创建一个字符串数组,其中每个元素是空字符串。您可以预先分配与一个字符串数组字符串函数。

字符串str = (2、3)
海峡=2 x3字符串“”“”“”“”“”“”

属性转换丢失的值,以创建丢失的字符串字符串函数。丢失的字符串显示为<失踪>

str =字符串(失踪)
str = <失踪>

可以创建包含空字符串和缺失字符串的字符串数组。使用不见了函数确定哪些元素是缺少值的字符串。请注意,空字符串不是缺少的字符串。

str (1) =“”;str (2) =“双子座”;字符串str(3) =(失踪)
海峡=1 x3字符串”“双子座”<失踪>
ISMISSING(STR)
ANS =1 x3逻辑阵列0 0 1

比较丢失的字符串和另一个字符串。结果总是0),甚至当你比较缺少串到另一个失踪的字符串。

字符串str =(失踪);str = =“双子座”
ANS =合乎逻辑0
str = =字符串(失踪)
ANS =合乎逻辑0

访问字符串数组的元素

字符串数组支持数组操作,比如万博1manbetx索引和重塑。的第一行使用数组索引str和所有列。

海峡= [“水星”“双子座”“阿波罗”;“天空实验室”“天空实验室B”“ISS”];:str (1)
ANS =1 x3字符串“水星”“双子星座”,“阿波罗”

第二行中访问第二个元素str

STR(2,2)
"天空实验室B"

在的边界之外分配一个新字符串str。MATLAB扩展数组,并用缺失的值填充未分配的元素。

STR(3,4)=“热血传奇”
海峡=3 x4字符串“汞” “双子” “阿波罗”<缺失> “天空实验室”, “天空实验室B” “ISS”<缺失> <缺失> <缺失> <缺失> “热血”

访问字符串中的字符串

您可以索引到一个字符串数组使用大括号,{},以直接访问字符。当需要访问和修改字符串元素中的字符时,请使用大括号。使用花括号进行索引为可以使用字符串数组或字符向量的单元数组的代码提供了兼容性。但只要可能,使用字符串函数处理字符串中的字符。

使用花括号访问第二行中的第二个元素。CHR是字符向量,而不是字符串。

海峡= [“水星”“双子座”“阿波罗”;“天空实验室”“天空实验室B”“ISS”];装备= str {2,}
CHR = '天空实验室B'

访问字符向量并返回前三个字符。

STR {2,2} ...(1:3)
ans =“天空”

查找字符串中的空格字符并将其替换为破折号。使用isspace函数将字符串内检查单个字符。isspace返回一个逻辑向量,该向量在有空格字符的地方包含一个真值。最后,显示修改后的字符串元素,STR(2,2)

TF = isspace为(STR {2,2})
TF =的1x8阵列的逻辑0 0 0 0 0 0 1 0
str {2,} (TF) =“ - ”;STR(2,2)
ANS = “天空实验室-B”

请注意,在这种情况下,也可以使用替代空间取代功能,而不诉诸花括号索引。

替换(STR(2,2)," "“ - ”
ANS = “天空实验室-B”

连接字符串到字符串数组

连接字符串为一个字符串数组就像你串连任何其他种类的阵列。

使用方括号连接两个字符串数组,[]

str1 = [“水星”“双子座”“阿波罗”];str2 = [“天空实验室”“天空实验室B”“ISS”];str = [str1 str2]
海峡=1X6线“汞”“双子”“阿波罗”的“天空实验室”,“天空实验室B”“ISS”

移调STR1STR2。连接它们,然后将列标题垂直连接到字符串数组上。将字符向量连接到字符串数组时,字符向量将自动转换为字符串。

STR1 = STR1' ;STR2 = STR2' ;STR = [STR1 STR2];STR = [[“任务:”“站:”];str)
海峡=4 x2字符串"任务空间站" "水星" "天空实验室" "双子座" "天空实验室B" "阿波罗" "国际空间站"

将文本附加到字符串

属性将文本附加到字符串中运营商,+。该运算符将文本附加到字符串,但不改变字符串数组的大小。

附加一个姓氏名的数组。如果追加一个特征向量为字符串,然后特征向量被自动转换为字符串。

名称= [“玛丽”;“约翰。”;“伊丽莎白”;“保罗”;“安”];名称=名称+“史密斯”
名称=5 x1字符串"玛丽史密斯" "约翰史密斯" "伊丽莎白史密斯" "保罗史密斯" "安史密斯"

添加不同的姓氏。可以从字符串数组或字符向量的单元格数组向字符串数组追加文本。当添加非标量数组时,它们的大小必须相同。

名称= [“玛丽”;“约翰。”;“伊丽莎白”;“保罗”;“安”];lastname = [“琼斯”;“亚当斯”;“年轻”;“燃烧”;“斯宾塞”];名称=名称+" "+ lastnames
名称=5 x1字符串“玛丽·琼斯”,“约翰·亚当斯”,“伊丽莎白·扬”,“保罗烧伤”,“安斯宾塞”

追加缺少字符串。当您将追加与加运算缺少串,输出的是缺少字符串。

str1 =“琼斯”;str2 =字符串(失踪);str1 + str2
ANS = <缺失>

斯普利特,加入和排序字符串数组

MATLAB提供了一套丰富的功能,将工作与字符串数组。例如,你可以使用分裂加入分类函数重新排列字符串数组所以名字是按姓氏的字母顺序排列的。

分裂在空格字符。拆分变动从5×1字符串数组至5×2阵列。

名称= [“玛丽琼斯”;《约翰•亚当斯》;“伊丽莎白年轻”;“保罗燃烧”;“安斯宾塞”];名称=分裂(名称)
名称=5 x2字符串"玛丽" "琼斯" "约翰"亚当斯"伊丽莎白"杨"保罗"伯恩斯"安"斯宾塞"

转换的列姓氏在第一列。在每个姓后面加一个逗号。

名称= [名称(:,2)名字(:,1)];名称(:,1)=名称(:,1)+”、“
名称=5 x2字符串琼斯,玛丽,亚当斯,约翰,杨,伊丽莎白,伯恩斯,保罗,斯宾塞,安

加入姓氏与名字。该加入函数在连接的字符串之间放置一个空格字符。加入后,是一个5×1字符串数组。

名称=加入(名称)
名称=5 x1字符串“琼斯,玛丽”“亚当斯,约翰”“杨,伊丽莎白”“伯恩斯,保罗”“斯宾塞,安”

对元素进行排序所以,他们是按字母顺序排列。

名称=排序(名称)
名称=5 x1字符串“亚当斯,约翰”“彭斯,保罗”“琼斯,玛丽”,“斯宾塞,安”“师弟,伊丽莎白”

也可以看看

||||||||

相关话题