首页 > 解决方案 > 将 NxN 矩阵复制到 NxNxN 矩阵的页面中

问题描述

简单得可笑的问题,但我想把它做对:在 MATLAB 中工作,我试图获取一个 NxN 矩阵并将其复制 N 次以填充一个 NxNxN 矩阵。我的代码执行,但变量“threeD”在循环结束后保持不变。另外,我认为循环不是做到这一点的最佳方式,尽管原则上我没有任何反对意见。提前致谢!

reps = 64;
gradient = (1:reps);
pattern = repmat(gradient,reps,1);

threeD = zeros(reps,reps,reps);

for c = reps
    threeD(:,:,c) = pattern;
end

标签: matlabmatrix

解决方案


方法 1:使用循环

循环所需的 for 循环由1指示。reps1:reps

reps = 64;

gradient = (1:reps);
pattern = repmat(gradient,reps,1);

threeD = zeros(reps,reps,reps);

for Layer = 1: reps
    threeD(:,:,Layer) = pattern;
end

方法二:使用 Repmat 沿三维复制

中的第二个参数,数组 [1 1 reps] 表示沿/维度repmat()复制数组的 mnay 次。[row column layer][x y z]

沿多个维度复制数组

reps = 64;

gradient = (1:reps);
pattern = repmat(gradient,reps,1);

threeD = repmat(pattern,[1 1 reps]);

使用 MATLAB 版本:R2019b


推荐阅读