文档

创建字符串数组

在R2016b介绍了字符串数组。字符串数组存储的文本,并提供一组函数处理文本数据。你可以索引、重塑和连接字符串数组一样可以与任何其他类型的数组。你也可以访问字符串中的字符和文本附加到字符串使用+操作符。重新在一个字符串数组,字符串使用等功能分裂,加入,排序

创建字符串数组变量

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

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

str =“你好,世界”
str =“你好,世界”

作为一种替代方法,您可以使用特征向量转换为字符串字符串函数。空空的是一个1-by-17特征向量。str是一个1×1的字符串相同的文本特征向量。

空空的=的问候,朋友
装备= '问候,朋友'
字符串str =(科)
str = "问候,朋友”

创建一个字符串数组使用[]操作符。str是一个2×3的字符串数组,其中包含6个字符串。

str = [“水星”,“双子座”,“阿波罗”;“天空实验室”,B“天空实验室”,“国际空间站”]
str =2 x3字符串数组“水星”“双子星”“阿波罗”“太空实验室”B“天空实验室”空间站”

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

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

作为一种替代方法,您可以转换一个细胞数组字符串数组使用的特征向量字符串函数。MATLAB®显示与双引号字符串在字符串数组,并显示与单引号字符向量在细胞数组。

C = {“水星”,“金星”,“地球”}
C =1 x3单元阵列{“水星”}{“金星”}{‘地球’}
字符串str = (C)
str =1 x3字符串数组“水星”“金星”“地球”

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

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

X = (5 10 20 3.1416);字符串(X)
ans =1 x4字符串数组“5”“十”“20”“3.1416”

一个datetime值转换为一个字符串。

d = datetime (“现在”);字符串(d)
ans = " 27日- 8月- 2018 13:31:10 "

另外,您可以从文件读取文本到字符串数组使用readtable,textscan,fscanf功能。

创建空的字符串和失踪

字符串数组可以包含两个空和缺失值。一个空字符串包含零字符。当您显示一个空字符串,结果是一对双引号和他们之间没有什么(”“)。失踪的字符串的字符串相当于数字数组。它表示一个字符串数组有缺失值。当你显示一个失踪的字符串,结果是<失踪>,没有引号。

创建一个空字符串数组使用字符串函数。当你打电话字符串不带参数,它将返回一个空字符串。注意的大小str是1×1,不是0-by-0。然而,str包含零字符。

字符串str =
str = " "

创建一个空字符向量使用单引号。注意的大小空空的0-by-0。

空空的=
装备= 0 x0空字符数组

创建一个字符串数组,每个元素是一个空字符串。你可以preallocate一个字符串数组字符串函数。

字符串str = (2、3)
str =2 x3字符串数组”“”“”“”“”“”“

创建一个失踪的字符串,把缺失值使用字符串函数。失踪的字符串显示<失踪>

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

您可以创建一个字符串数组与空字符串和失踪。使用ismissing函数来确定哪些元素用缺失值是字符串。注意,空字符串不是一个失踪的字符串。

str (1) =”“;str (2) =“双子座”;字符串str(3) =(失踪)
str =1 x3字符串数组”“双子座”<失踪>
ismissing (str)
ans =1 x3逻辑阵列0 0 1

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

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

访问字符串数组的元素

字符串数组支持数组操作,如索金宝app引和重塑。使用数组索引访问的第一行str和所有的列。

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

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

str (2, 2)
ans = B“天空实验室”

分配一个新的字符串的范围之外str。MATLAB®扩展数组和缺失值填充未分配的元素。

str = (3、4)“米尔”
str =3 x4字符串数组“水星”“双子星”“阿波罗”<失踪>“太空实验室”B“天空实验室”空间站”<失踪> <失踪> <失踪> <失踪>“米尔”

访问字符串中的字符

你可以使用花括号指数成一个字符串数组,{}直接访问字符。使用花括号时,您需要访问和修改字符在字符串元素。索引使用花括号提供兼容性代码可以使用字符串数组或单元阵列的特征向量。但是只要有可能,使用字符串函数处理字符串中的字符。

访问第二行中的第二个元素和花括号。空空的是一个特征向量,而不是一个字符串。

str = [“水星”,“双子座”,“阿波罗”;“天空实验室”,B“天空实验室”,“国际空间站”];装备= str {2,}
装备= '太空实验室B '

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

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

找到空格字符在字符串和替换破折号。使用isspace函数检查单个字符的字符串。isspace返回一个逻辑向量包含一个真正价值哪里有一个空格字符。最后,显示修改后的字符串的元素,str (2, 2)

tf = isspace (str {2,})
tf =1×8逻辑阵列0 0 0 0 0 0 1 0
str {2,} (tf) =“-”;str (2, 2)
ans = " Skylab-B "

请注意,在这种情况下,你也可以代替空间使用取代函数,而无需花括号索引。

替换(str (2, 2),”“,“-”)
ans = " Skylab-B "

连接字符串的字符串数组

连接字符串拼接成一个字符串数组就像任何其他类型的数组。

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

str1 = [“水星”,“双子座”,“阿波罗”];str2 = [“天空实验室”,B“天空实验室”,“国际空间站”];str = [str1 str2]
str =1 x6字符串数组“水星”“双子星”“阿波罗”“太空实验室”B“天空实验室”空间站”

转置str1str2。垂直连接,然后连接列标题到字符串数组。当你连接特征向量成一个字符串数组,特征向量自动转换为字符串。

str1 = str1 ';str2 = str2 ';str = [str1 str2];str = [[“任务:“,“:”];str)
str =4 x2字符串数组站:“任务:““水星”“太空实验室”“双子座”B“太空实验室”“阿波罗”“国际空间站”

附加文本字符串

附加文本字符串,使用+运营商,+。的+运营商附加文本字符串,但并不能改变一个字符串数组的大小。

一个姓附加到一个数组的名字。如果你添加一个字符字符串向量,那么特征向量自动转换为一个字符串。

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

添加不同的姓氏。你可以追加文本字符串数组从一个字符串数组或单元阵列的特征向量。当您添加nonscalar数组,它们必须是相同的大小。

名称= [“玛丽”;“约翰。”;“伊丽莎白”;“保罗”;“安”];lastname = [“琼斯”;“亚当斯”;“年轻”;“燃烧”;“斯宾塞”];名称=名称+”“+姓
名称=5 x1字符串数组《约翰•亚当斯》“玛丽琼斯伊丽莎白年轻”“保罗·伯恩斯”“安斯宾塞”

附加一个失踪的字符串。当你添加一个失踪与+操作符字符串,输出是一个失踪的字符串。

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

分裂、加入和排序字符串数组

MATLAB®提供了一组丰富的功能来处理字符串数组。例如,您可以使用分裂,加入,排序函数来重新排列的字符串数组的名字这样的名字是按姓的字母顺序排列。

分裂的名字空格字符。分裂的变化的名字从5-by-1 5×2数组字符串数组。

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

开关的列的名字这最后一个名字是第一列。每个姓氏后加一个逗号。

名称=[名称(:,2)名称(:1)];名称(:1)=(:1)+姓名”、“
名称=5 x2字符串数组“琼斯”、“玛丽”“亚当斯,”“约翰”“年轻”“伊丽莎白”“燃烧”,“保罗”“斯宾塞”,“安”

加入最后和名字。的加入函数之间的空格字符字符串的地方它连接。加入后,的名字是一个5-by-1字符串数组。

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

排序的元素的名字所以,他们是按字母顺序排列的。

名称=排序(名称)
名称=5 x1字符串数组”约翰亚当斯,”“伯恩斯,保罗”“琼斯,玛丽”“安·斯宾塞”“年轻,伊丽莎白”

另请参阅

||||||||

相关的话题