创建字符串数组

字符串数组是在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×3串“水星”,“金星”,“地球”

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

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

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

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

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

方法将文本从文件读入字符串数组readtabletextscan的fscanf职能。

创建空的和丢失的字符串

字符串数组可以包含空值和丢失的值。空字符串包含0个字符。当您显示一个空字符串时,结果是一对双引号,中间没有任何内容(“”)。缺少的字符串相当于为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×3串“”“双子” <缺失>
ISMISSING(STR)
ANS =1×3阵列的逻辑0 0 1

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

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

访问字符串数组的元素

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

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

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

STR(2,2)
"Skylab 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×2串"玛丽" "琼斯" "约翰" "亚当斯" "伊丽莎白" "年轻" "保罗" "伯恩斯" "安" "斯宾塞"

交换列所以姓在第一列。在每个姓后面加逗号。

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

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

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

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

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

也可以看看

||||||||

相关话题