假设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中的较小数组.向量dim1Dist,... dimNDist指定如何划分行,列和(如果适用)更高维度的A .

你可以这样做:
A = [1 2 3; 4 5 6; 7 8 9];
B = mat2cell(A, [1 1 1], 3);
Run Code Online (Sandbox Code Playgroud)
会给你:
B={[1 2 3];[4 5 6];[7 8 9]}
Run Code Online (Sandbox Code Playgroud)
文档还说:
C = mat2cell(A,rowDist)将数组A划分为n×1单元阵列C,其中n == numel(rowDist).
因此,如果您总是要将矩阵拆分为行而不是列,则可以在没有第二个参数的情况下执行此操作.
B = mat2cell(A, [1 1 1]);
Run Code Online (Sandbox Code Playgroud)
更好的,通用的方式是:
mat2cell(A, ones(1, size(A, 1)), size(A, 2));
Run Code Online (Sandbox Code Playgroud)