我有一个矩阵的单元格数组,如下所示:
G =
Columns 1 through 6
[507x1 double] [255x1 double] [130x1 double] [67x1 double] [36x1 double] [19x1 double]
Columns 7 through 9
[11x1 double] [6x1 double] [4x1 double]
这意味着矩阵在单元格数组中。矩阵G
总共有507 + 255 + 130 + 67 + 36 + 19 + 11 + 6 + 4 = 1035个元素。我可以使用G{i}
命令提取任何单元格。但是,我需要单列或行矩阵中的所有这些1035元素。我尝试了cell2mat(G)
,但这并不奏效。
我可以在这里创建一个包含所有其他矩阵的矩阵吗?
答案 0 :(得分:2)
使用cat
并垂直连接,或沿第一维连接:
G = cat(1, G{:});
语法G{:}
产生所谓的comma-separated list。这相当于你做的事情:
G = cat(1, G{1}, G{2}, ..., G{9});
而不是必须键入要用于连接的所有单个单元格元素,而是G{:}
为您解压缩所有这些元素。
cell2mat
基本上以我上面谈到的方式执行cat
。如果你看一下cell2mat
的来源,它会因为很多健全性检查而变得臃肿,但是函数的核心只是使用cat
并利用逗号分隔的列表。我不知道为什么cell2mat
不适合你。