如何将2xn矩阵转换为1xn单元阵列,将值连接起来,以便单元格数组包含原始矩阵的列向量? 我想比通过每列的简单for循环更有效地做到这一点(因为这是matlab和循环效率低下)
说我有一个2x2矩阵[1,2; 3,4]。我希望将其转换为单元格数组{[1,3],[2,4]}。我已经查了一下mat2cell但看不到如何在向上连接的同时保持单元阵列的长度。
提前致谢。
答案 0 :(得分:1)
您可以利用mat2cell的其他参数来根据需要格式化输出。
在您的情况下,指定每个单元格连续包含2个元素:
A = [1 2;3 4];
B = mat2cell(A.',[1 1]).';
celldisp(B)
B
现在是1x2
单元格:
B{1} =
1 3
B{2} =
2 4
答案 1 :(得分:0)
有点密集,但我认为这就是你所追求的。
A=[1 2;3 4];
permute(mat2cell(reshape(permute(A,[2 1]),[numel(A) 1]),size(A,1)*ones(size(A,2),1),[1] ),[2 1])