如何在Matlab中创建一个随每层增加值的三维数组



即,一个三维矩阵,其中每层上的所有值都相同,但每张图纸上的值随着层的增加而增加。

例如,增量可以定义为x=(0:0.5:2*pi(。

我试过使用repmat,但这似乎只是在另一个方向上产生矩阵。

谢谢!

还有一种可能性:使用ndgrid,此处用于创建4-by5-by-x数组:

x = 0:0.5:2*pi;
[~,~,out] = ndgrid(1:4,1:5,x);

您可以使用repmatpermute:

x = (0:0.5:2*pi);
y = repmat(x',[1,5,5]);
z = permute(y,[2,3,1]);
size(z)
ans =
    5    5   13
z(:,:,1)
ans =
   0   0   0   0   0
   0   0   0   0   0
   0   0   0   0   0
   0   0   0   0   0
   0   0   0   0   0
z(:,:,2)
ans =
   0.50000   0.50000   0.50000   0.50000   0.50000
   0.50000   0.50000   0.50000   0.50000   0.50000
   0.50000   0.50000   0.50000   0.50000   0.50000
   0.50000   0.50000   0.50000   0.50000   0.50000
   0.50000   0.50000   0.50000   0.50000   0.50000

定义x

x = (0:0.5:2*pi);

这将使值随行而变化(第二个维度(。改变你的x,使其随你想要的维度而变化(第三维度(:

x = permute(x, [1, 3, 2]);

然后重新命名:

x = repmat(x, [3, 3, 1]);

相关内容

  • 没有找到相关文章

最新更新