假设A=[1 2 3;4 5 6;7 8 9]
我想把它转换成B=[{[1,2,3]};{[4,5,6]};{[7,8,9]}]
我怎么能这么简单?
最佳答案
您可以使用mat2cell
功能。
从文档中:
C=mat2cell(A,dim1Dist,…,dimNDist)将数组A划分为更小的数组
单元格数组中的数组C.Vectors dim1Dist,…dimNDist指定如何
划分行、列和(如果适用)更高的维度
一个。
你可以这样做:
A = [1 2 3; 4 5 6; 7 8 9];
B = mat2cell(A, [1 1 1], 3);
会给你:
B={[1 2 3];[4 5 6];[7 8 9]}
文件还说:
C=mat2cell(A,rowDist)将数组A划分为n乘1的单元格数组C,
其中n==numel(rowDist)。
因此,如果您总是要将矩阵拆分为行,而不是列,那么您可以在不使用第二个参数的情况下进行。
B = mat2cell(A, [1 1 1]);
一个更好、更普遍的方法是:
mat2cell(A, ones(1, size(A, 1)), size(A, 2));