主要内容

cell2mat

将元胞数组转换为普通数组

说明

A = cell2mat(C) 将元胞数组转换为普通数组。

C 的内容必须支持串联到 N 维矩形中。否则,结果将不确定。例如,同一列中的元胞的内容必须具有相同的列数,但不需要具有相同的行数。

Cell array with six cells concatenated into one ordinary array

示例

示例

全部折叠

将一个元胞数组的四个元胞中的数值数组转换为一个数值数组。

C = {[1],    [2 3 4];
     [5; 9], [6 7 8; 10 11 12]}
C=2×2 cell array
    {[       1]}    {[   2 3 4]}
    {2×1 double}    {2×3 double}

A = cell2mat(C)
A = 3×4

     1     2     3     4
     5     6     7     8
     9    10    11    12

将元胞数组中的结构体转换为一个结构体数组。这些结构体必须包含相同的字段。

s1.a = [1 2 3 4];
s1.b = 'Good';
s2.a = [5 6; 7 8];
s2.b = 'Morning';
c = {s1,s2};
d = cell2mat(c)
d=1×2 struct array with fields:
    a
    b

显示结构体 d(1) 的第一个字段。

d(1).a
ans = 1×4

     1     2     3     4

显示 d(2) 的第二个字段。

d(2).b
ans = 
'Morning'

自 R2025a 起

将包含不同数据类型的元胞数组转换为普通数组。

创建一个包含 singledouble 值的元胞数组。

a = single([1 2 3]);
b = double([2 4 6]);
C = {a;b}
C =

  2×1 cell array

    {[1 2 3]}
    {[2 4 6]}

将该元胞数组转换为一个数值数组。生成的数组为 single

D = cell2mat(C)
D =

  2×3 single matrix

     1     2     3
     2     4     6

输入参数

全部折叠

输入元胞数组。如果元胞的内容都具有相同的数据类型,则生成的数组具有该数据类型。如果元胞包含结构体且这些结构体具有相同的字段名称,则函数可以串联这些元胞。

如果 MATLAB® 可以将某些不同的数据类型转换为一种输出类型,则元胞可以具有这些不同的数据类型。有关基本数据类型组合及其生成的类型的示例,请参阅不同类的有效合并

cell2mat 也接受包含基于类的对象的元胞数组。有关如何组合基于类的对象的信息,请参阅Concatenating Objects of Different Classes

cell2mat 不接受 C 中的嵌套元胞。

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

全部展开