元胞数组处理

目录

将元胞添加到元胞数组

合并元胞数组

删除元胞数组中的数据

合并元胞数组与非元胞数组


将元胞添加到元胞数组

        此示例演示了如何将元胞添加到元胞数组。创建一个 1×3 元胞数组。

C = {1, 2, 3}


C=1×3 cell array
    {[1]}    {[2]}    {[3]}

        将数据分配给当前维度之外的元胞。MATLAB® 将元胞数组扩展到包括指定下标的矩形。任何中间元胞都包含空数组。

C{4,4} = 44


C=4×4 cell array
    {[       1]}    {[       2]}    {[       3]}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}    {[      44]}

        通过将一个空数组指定为元胞的内容来添加元胞而不指定值。C 现在是一个 5×5 元胞数组。

C{5,5} = []


C=5×5 cell array
  Columns 1 through 4

    {[       1]}    {[       2]}    {[       3]}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}    {[      44]}
    {0x0 double}    {0x0 double}    {0x0 double}    {0x0 double}

  Column 5

    {0x0 double}
    {0x0 double}
    {0x0 double}
    {0x0 double}
    {0x0 double}

合并元胞数组

        此示例演示了如何通过串联或嵌套来合并元胞数组。为了运行此示例中的代码,使用相同数量的列创建多个元胞数组:

C1 = {1, 2, 3};
C2 = {'A', 'B', 'C'};
C3 = {10, 20, 30};

        使用数组串联运算符 [] 串联元胞数组。在此示例中,通过使用分号分隔元胞数组来垂直串联元胞数组:

C4 = [C1; C2; C3]

        C4 是一个 3×3 元胞数组:

C4 = 
    [ 1]    [ 2]    [ 3]
    'A'     'B'     'C' 
    [10]    [20]    [30]

        使用元胞数组构造运算符 {} 创建一个嵌套元胞数组:

C5 = {C1; C2; C3}

        C5 是一个 3×1 元胞数组,其中每个元胞都包含一个元胞数组:

C5 = 
    {1x3 cell}
    {1x3 cell}
    {1x3 cell}

        要将字符向量元胞数组合并到一个字符向量中,使用 strjoin 函数。

删除元胞数组中的数据

        此示例演示了如何删除单个元胞中的数据,以及如何删除元胞数组中的全部元胞。创建一个 3×3 元胞数组

C = {1, 2, 3; 4, 5, 6; 7, 8, 9}


C=3×3 cell array
    {[1]}    {[2]}    {[3]}
    {[4]}    {[5]}    {[6]}
    {[7]}    {[8]}    {[9]}

        通过将一个空数组赋给元胞并使用花括号建立内容索引 {} 来删除特定元胞的内容。

C{2,2} = []


C=3×3 cell array
    {[1]}    {[       2]}    {[3]}
    {[4]}    {0x0 double}    {[6]}
    {[7]}    {[       8]}    {[9]}

        通过使用圆括号 () 建立的标准数组索引来删除元胞集。例如,删除 C 的第二行。

C(2,:) = []


C=2×3 cell array
    {[1]}    {[2]}    {[3]}
    {[7]}    {[8]}    {[9]}

合并元胞数组与非元胞数组

        合并多个数组时,若其中有一个或多个为元胞数组,将返回一个新元胞数组。每个原始数组占用新数组中的一个元胞:

A = [100, {uint8(200), 300}, 'MATLAB'];


whos A
  Name      Size            Bytes  Class    Attributes

  A         1x4               477  cell

        合并的数组中的每个元素都保持其原始类:

fprintf('Classes: %s %s %s %s\n',...
        class(A{1}),class(A{2}),class(A{3}),class(A{4}))


Classes: double uint8 double char

猜你喜欢

转载自blog.csdn.net/jk_101/article/details/125797189