将数组从可变大小的单元格中的行连接到 Matlab 中的单列向量
Concatenate arrays from rows in a cell of varible size to single column vector in Matlab
对于一个愚蠢的问题,我深表歉意。我有一个包含多个行向量的单元格数组(我不知道有多少,这可能会有所不同),我想将它们连接到一个列数组中。例如:
A = {[1 2 3]; [4 6 5 4 3 2 21 1]; [3 2 1 1 5 6 78 4]; [3 4]}
我想像这样获得 B:
B = [1;2;3;4;6;5;4;3;2;21;1;3;2;1;1;5;6;78;4;3;4]
我试图在 for 循环中执行它,因为我不知道 A 中包含多少个数组,在这个例子中它们是 4 个,但它们的数量可能会有所不同,所以我写了这样的东西:
for i= 1:length(A)
B= [vertcat(cell2mat(A(i)))'];
end
但这只在列中写入最后一个数组 A 的结果。我该如何解决这个问题?
如果转置 A
,则可以对整个单元格使用 cell2mat
,从而生成行向量。另一个转置给你想要的结果。
B = cell2mat(A.').';
对于一个愚蠢的问题,我深表歉意。我有一个包含多个行向量的单元格数组(我不知道有多少,这可能会有所不同),我想将它们连接到一个列数组中。例如:
A = {[1 2 3]; [4 6 5 4 3 2 21 1]; [3 2 1 1 5 6 78 4]; [3 4]}
我想像这样获得 B:
B = [1;2;3;4;6;5;4;3;2;21;1;3;2;1;1;5;6;78;4;3;4]
我试图在 for 循环中执行它,因为我不知道 A 中包含多少个数组,在这个例子中它们是 4 个,但它们的数量可能会有所不同,所以我写了这样的东西:
for i= 1:length(A)
B= [vertcat(cell2mat(A(i)))'];
end
但这只在列中写入最后一个数组 A 的结果。我该如何解决这个问题?
如果转置 A
,则可以对整个单元格使用 cell2mat
,从而生成行向量。另一个转置给你想要的结果。
B = cell2mat(A.').';