我有矩阵A = 50x2 如何将数据转换为单元格数组。 应该是我有10个单元格,每个单元格包含数据[5x2]。
感谢您的帮助。
答案 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)
。