1

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

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

我尝试过使用 repmat,但这似乎只会产生另一个方向的矩阵。

谢谢!

4

3 回答 3

4

另一种可能性:使用ndgrid,这里用于创建一个 4×5×#x 数组:

x = 0:0.5:2*pi;

[~,~,out] = ndgrid(1:4,1:5,x);
于 2013-04-02T18:20:10.260 回答
0

您可以使用repmatand执行此操作permute

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
于 2013-04-02T17:46:25.220 回答
0

定义 x

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

这将具有沿行(第二维)变化的值。将您的 x 更改为沿您想要的维度(第 3 维度)变化:

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

然后重新格式化它:

x = repmat(x, [3, 3, 1]);
于 2013-04-02T17:57:35.940 回答