目录
cell2mat函数是将元胞数组转换为基础数据类型的普通数组。
语法
A = cell2mat(C)
输入元胞数组,其中所有元胞都包含同一数据类型。cell2mat 接受 C 的元胞中的数值数据、逻辑数据或字符数据,或者包含相同字段名称和数据类型的结构体。cell2mat 不接受 C 中的对象或嵌套元胞。
说明
A = cell2mat(C) 将元胞数组转换为普通数组。元胞数组的元素必须全都包括相同的数据类型,并且生成的数组也是该数据类型。
C 的内容必须支持串联到 N 维矩形中。否则,结果将不确定。例如,同一列中的元胞的内容必须具有相同的列数,但不需要具有相同的行数(见图)。
如图所示:
示例
将元胞数组转换为数值数组
将一个元胞数组的四个元胞中的数值数组转换为一个数值数组。
C = {[1], [2 3 4];
[5; 9], [6 7 8; 10 11 12]}
C=2×2 cell array
{[ 1]} {1x3 double}
{2x1 double} {2x3 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'