将文本存储为字符向量,用单引号括起来。通常,字符向量具有您认为是单一信息的文本,例如文件名或绘图的标签。如果您有很多文本,例如文件名列表,则可以将它们存储在单元格数组中。其元素是所有字符向量的单元格数组是a字符向量的单元格阵列。
笔记
截至R2018B,将文本的推荐方法用于使用字符串阵列。如果您创建具有的变量细绳
数据类型,将它们存储在字符串数组中,而不是单元格数组。有关更多信息,请参阅字符串和字符数组中的文本和更新您的代码以接受字符串。
虽然这句话字符串单元阵列经常被用来描述这种单元阵列,这句话不再准确,因为这种单元阵列保持字符向量,而不是字符串。
要创建字符向量的单元格数组,请使用Crly括号,{}
,正如您要创建任何单元格数组。例如,使用字符向量的单元格数组来存储名称列表。
c = {'李'那'桑切斯'那'琼斯'那“杨”那'Larson'}
C =1x5细胞{'li'} {'sanchez'} {'jones'} {'yang'} {'larson'}
字符向量C
可以具有不同的长度,因为单元格阵列不要求其内容具有相同的大小。确定字符向量的长度C
, 使用斯特莱格
功能。
l = strlength(c)
l =1×52 7 5 4 6
要访问单元格数组中的字符向量,请使用卷曲括号索引到它中,{}
。提取第一单元的内容并将其存储为字符向量。
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”
Cellstr.
|char
|Iscellstr.
|Strcmp.
|细绳