文档

创建字符串数组

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

从变量创建字符串数组

MATLAB®提供的字符串数组存储块的文本。一个字符串数组的每个元素都包含一个1×N的特征向量。

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

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

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

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

属性创建字符串数组[]操作符。str是包含6串的2×3字符串数组。

海峡= [“水星”“双子座”“阿波罗”;“天空实验室”“天空实验室B”“国际空间站”]
海峡=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 = “16-MAR-2018 17时02分29秒”

属性还可以将文本从文件读取到字符串数组中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×3阵列的逻辑0 0 1

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

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

访问字符串数组的元素

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

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

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

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

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

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

访问字符串中的字符串

您可以索引到一个字符串数组使用大括号,{},直接访问字符。当你需要访问和修改字符的字符串元素中使用大括号。用大括号索引提供了用于代码可与任一字符串数组或字符向量的单元阵列的工作的兼容性。但是,只要有可能,使用字符串函数与字符串中的字符工作。

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

海峡= [“水星”“双子座”“阿波罗”;“天空实验室”“天空实验室B”“国际空间站”];装备= 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,2}(TF)=“ - ”;STR(2,2)
ANS = “天空实验室-B”

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

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

连接字符串到字符串数组

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

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

str1 = [“水星”“双子座”“阿波罗”];str2 = [“天空实验室”“天空实验室B”“国际空间站”];STR = [STR1 STR2]
海峡=1 x6字符串数组“汞”“双子”“阿波罗”的“天空实验室”,“天空实验室B”“ISS”

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

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

附加文本字符串

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

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

名称= [“玛丽”;“约翰。”;“伊丽莎白”;“保罗”;“安”];名称=名称+“史密斯”
名称=5X1字符串数组“玛丽·史密斯”,“约翰·史密斯”“伊丽莎白·史密斯”“保罗·史密斯”,“安·史密斯”

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

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

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

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

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

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

分裂在空格字符。拆分变动从5乘1的字符串数组到5乘2的数组。

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

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

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

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

名称=加入(名称)
名称=5X1字符串数组“琼斯,玛丽”,“亚当斯,约翰”“师弟,伊丽莎白”“彭斯,保罗”“斯宾塞,安”

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

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

也可以看看

||||||||

相关的话题

是这个主题有帮助吗?