如何将矩阵转换为单元格数组

时间:2017-11-05 02:05:38

标签: arrays matlab matrix cell-array

我有矩阵A = 50x2 如何将数据转换为单元格数组。 应该是我有10个单元格,每个单元格包含数据[5x2]。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

这就是mat2cell的作用:

A = rand(50,2); % example matrix
N = 10; % number of cells in which to split the first dimension
result = mat2cell(A, repmat(size(A,1)/N, 1, N), size(A,2));

答案 1 :(得分:0)

可以使用num2cell

N_ROWS = 5; N_COLS = 2;
A = rand(50,2);
B = num2cell(reshape(A,N_ROWS,N_COLS,[]),[1,2]); % B is 1x1x10 cell array

这样做是将输入数组转换为沿第3维堆叠的5x2“切片”。

如果您需要将输出作为列向量,则可以在末尾添加squeeze(B)B = B(:)reshape(B,[],1)