主要内容

字符向量的单元格阵列

将文本存储为字符向量,用单引号括起来。通常,字符向量具有您认为是单一信息的文本,例如文件名或绘图的标签。如果您有很多文本,例如文件名列表,则可以将它们存储在单元格数组中。其元素是所有字符向量的单元格数组是a字符向量的单元格阵列

笔记

  • 截至R2018B,将文本的推荐方法用于使用字符串阵列。如果您创建具有的变量细绳数据类型,将它们存储在字符串数组中,而不是单元格数组。有关更多信息,请参阅字符串和字符数组中的文本更新您的代码以接受字符串

  • 虽然这句话字符串单元阵列经常被用来描述这种单元阵列,这句话不再准确,因为这种单元阵列保持字​​符向量,而不是字符串。

创建字符向量的单元格数组

要创建字符向量的单元格数组,请使用Crly括号,{},正如您要创建任何单元格数组。例如,使用字符向量的单元格数组来存储名称列表。

c = {'李''桑切斯''琼斯'“杨”'Larson'}
C =1x5细胞{'li'} {'sanchez'} {'jones'} {'yang'} {'larson'}

字符向量C可以具有不同的长度,因为单元格阵列不要求其内容具有相同的大小。确定字符向量的长度C, 使用斯特莱格功能。

l = strlength(c)
l =1×52 7 5 4 6

Cell Array中访问字符向量

要访问单元格数组中的字符向量,请使用卷曲括号索引到它中,{}。提取第一单元的内容并将其存储为字符向量。

c = {'李''桑切斯''琼斯'“杨”'Larson'};chr = c {1}
chr ='li'

为第一个单元分配不同的字符向量。

c {1} =“杨”
C =1x5细胞{'yang'} {'sanchez'} {'jones'} {'yang'} {'larson'}

要引用单元格,而不是它们的内容,使用流畅的括号索引。

C(1:3)
ans =.1x3细胞{'yang'} {'sanchez'} {'jones'}

虽然您可以通过索引访问单元格的内容,但大多数函数接受单元格阵列作为输入在整个单元格数组上运行。例如,您可以使用Strcmp.比较内容的功能C到一个字符的矢量。Strcmp.回报1哪里有一场比赛和0.除此以外。

tf = strcmp(c,“杨”
tf =1x5逻辑阵列1 0 0 1 0

你可以总结一下TF.找到匹配的数量。

num = sum(tf)
num = 2

TF.作为返回匹配项的逻辑索引C。如果使用流畅的括号索引,则输出是仅包含匹配项的单元数组。

m = c(tf)
m =1x2细胞{'yang'} {'yang'}

将单元阵列转换为字符串数组

截至R2018B,在整个Matlab®和MathWorks®产品万博1manbetx中支持串阵列。s manbetx 845因此,建议您使用字符串数组而不是字符向量的单元格阵列。(但是,接受字符串阵列作为输入的MATLAB函数也接受字符向量和字符向量的单元格阵列。)

您可以将字符向量的单元格阵列转换为字符串数组。要转换字符向量的单元格数组,请使用细绳功能。

c = {'李''桑切斯''琼斯'“杨”'Larson'}
C =1x5细胞{'li'} {'sanchez'} {'jones'} {'yang'} {'larson'}
str = string(c)
str =1x5字符串“李”“桑切斯”“琼斯”“杨”“拉森”

事实上,细绳函数转换任何单元数组,只要所有内容都可以转换为字符串。

C2 = {5,10,“一些文字”, 约会时间('今天​​')}
C2 =1×4个单元阵列{[5]} {[10]} {'某些文本'} {[23-FEB-2021]}
str2 = string(c2)
str2 =1x4字符串“5”“10”“一些文本”“23-Feb-2021”

也可以看看

||||

相关话题