对于元胞数组,您有两种索引方法,即括号(即(...))和大括号(即{...})。
让我们创建一个元胞数组以用于示例:
A = {3, 9, 'a';
'B', [2,4], 0};
使用括号进行索引会返回元胞数组的一部分作为 CELL ARRAY。例如
A(:,3)
返回一个 2×1 元胞数组
ans =
'a'
0
使用大括号进行索引返回该单元格的 CONTENTS,例如
A{1,3}
返回单个字符
ans =
a
您也可以使用括号返回单个单元格,但它仍然是一个单元格。您也可以使用大括号返回多个单元格,但这些单元格返回为comma separated lists,这有点高级。
分配给单元格时,应用非常相似的概念。如果您使用括号进行分配,那么您必须分配一个适当大小的 cell 矩阵:
A(:,1) = {1,1}
如果您使用括号分配单个值,那么您必须将它放在一个单元格中(即A(1) = 2 会给您一个错误,所以您必须使用A(1) = {2})。所以最好使用大括号,因为这样会直接影响单元格的内容。所以去是对的
A{1} = 2
这相当于A(1) = {2}。请注意,您所做的 A{1} = {2} 不会给出错误,但所做的是在您的单元格中嵌套一个单元格,这不太可能是您所追求的。
最后,如果您的一个单元格中有一个矩阵,那么 Matlab 允许您直接索引到该矩阵,如下所示:
A{2,2}(1)
ans =
3