Matlab用二维数组初始化三维数组

wswtfjt7  于 2022-11-24  发布在  Matlab
关注(0)|答案(1)|浏览(158)

有没有一种简单的方法来创建一个3D数组,其中每一层都用一个给定的2D数组初始化?我可以使用下面的for循环,但它非常慢。

a = rand(1000);
b = zeros(1000, 1000, 1000);
for i = 1:1000
  b(:,:,i) = a;
end
cu6pst1q

cu6pst1q1#

您可以在此处等效地使用repmatrepelem

a = rand(10,10);

b = repmat( a, 1, 1, 1000 );
c = repelem( a, 1, 1, 1000 );

您也可以使用隐式展开,尽管它读起来不那么清晰

d = a + zeros( 1, 1, 1000 );

相关问题