从 Nx2 矩阵中提取方阵

Extract square matrices from a Nx2 matrix

我正在使用 matlab 2014,我有一个 5124x2 矩阵,我想提取所有 2562 方阵。 我发现唯一的解决方案是使用 mat2Cell,但它对我不起作用。最后我真的不需要元胞数组,我想要的只是所有方阵

%example of data
A = rand(5124,2);
C = mat2cell(A,2,2*ones(2562,1));

我收到以下错误:

Error using mat2cell (line 106)
Input arguments, D1 through D2, must sum to each dimension of the input matrix size, [5124     2].'

你能帮帮我吗?谢谢

要修复您的代码,应该是:

C = mat2cell(A,2*ones(2562,1));

要将 A 重塑为 2x2 切片的 3D 矩阵,您可以使用:

C = permute(reshape(A.',2,2,[]), [2,1,3]);