假设我们有一个大小为 N^2 x N^2 个元素(例如 9x9)的矩阵 M,将其分成 3x3 段(每个段有 3x3 个元素)的最快方法是什么。
我想到的一种方法如下:
M = magic(9);
N = 3;
m = mat2cell(M, N * ones(1, size(M, 1) / N), ...
N * ones(1, size(M, 2) / N));
但是,我不喜欢使用细胞。我很好奇是否有一种方法可以分割矩阵并使用段的列主索引以 3D 矩阵的形式存储段(例如,第一个段 m{1} 变为 m(:, :, 1 ),第二段 m{2} 变为 m(:, :, 2),依此类推)。
这对你有帮助吗?
m = reshape(M,N,N,N*N);