将 nxm 矩阵转换为 1xm 元胞数组

Converting nxm matrix into a 1xm cell array

如何将 2xn 矩阵转换为 1xn 元胞数组,向上串联值,使元胞数组包含原始矩阵的列向量? 我想比遍历每一列的简单 for 循环更有效地执行此操作(因为这是 matlab 并且循环效率低下)

假设我有一个 2x2 矩阵 [1,2;3,4]。我希望将其转换为元胞数组 {[1,3],[2,4]}。我查阅了有关 mat2cell 的信息,但看不到如何在向上串联时保持元胞数组的长度。

提前致谢。

您可以利用 mat2cell 的附加参数来根据需要格式化输出。

对于您的情况,请指定每个单元格连续包含 2 个元素:

A = [1 2;3 4];
B = mat2cell(A.',[1 1]).';

celldisp(B)

B 现在是 1x2 单元格:

B{1} =

     1     3



B{2} =

     2     4

有点密集,但我认为这符合您的要求。

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])