如何在 MATLAB 中将矩阵划分为 N^2 个段,每个段包含 NxN 个元素?

问题描述 投票:0回答:1

假设我们有一个大小为 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),依此类推)。

arrays matlab matrix vectorization
1个回答
0
投票

这对你有帮助吗?

m = reshape(M,N,N,N*N);
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.