Main Content

本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

访问部分元胞的多级索引

此示例说明了访问存储于元胞数组的元胞中的数组数据的方法。

创建一个样本元胞数组。

myNum = [1, 2, 3];
myCell = {'one', 'two'};
myStruct.Field1 = ones(3);
myStruct.Field2 = 5*ones(5);

C = {myNum, 100*myNum;
     myCell, myStruct}
C=2×2 cell array
    {1x3 double}    {1x3 double}
    {1x2 cell  }    {1x1 struct}

使用花括号 {} 访问特定元胞的完整内容。例如,从包含某个数值向量的元胞返回该向量。

C{1,2}
ans = 1×3

   100   200   300

通过追加索引,并使用与内容的数据类型匹配的语法,来访问元胞的部分内容。

使用圆括号将数值索引括起来。例如,C{1,1} 返回一个 1×3 数值向量 [1 2 3]。使用圆括号访问该向量的第二个元素。

C{1,1}(1,2)
ans = 2

将元胞数组索引括在花括号中。例如,C{2,1} 返回元胞数组 {'one','two'}。使用花括号访问该元胞数组中的第二个元胞的内容。

C{2,1}{1,2}
ans = 
'two'

使用圆点表示法引用结构体数组的字段,并按对数值和元胞数组的说明为数组建立索引。例如,C{2,2} 返回一个结构体数组,其中 Field2 包含一个由 5 构成的 5×5 数值数组。使用圆点表示法和圆括号访问该字段的第 5 行和第 1 列中的元素。

C{2,2}.Field2(5,1)
ans = 5

您可以嵌套任何数量的元胞和结构体数组。例如,将嵌套的元胞和结构体添加到 C

C{2,1}{2,2} = {pi, eps};
C{2,2}.Field3 = struct('NestedField1', rand(3), ...
                       'NestedField2', magic(4), ...
                       'NestedField3', {{'text'; 'more text'}} );

使用花括号、圆括号或圆点表示法访问部分新数据。

copy_pi = C{2,1}{2,2}{1,1}
copy_pi = 3.1416
part_magic = C{2,2}.Field3.NestedField2(1:2,1:2)
part_magic = 2×2

    16     2
     5    11

nested_cell = C{2,2}.Field3.NestedField3{2,1}
nested_cell = 
'more text'

相关主题