即,一个 3d 矩阵,其中每层上的所有值都相同,但每张纸上的值随着层数的增加而增加。
例如,增量可以由 x = (0:0.5:2*pi) 定义。
我尝试过使用 repmat,但这似乎只会产生另一个方向的矩阵。
谢谢!
即,一个 3d 矩阵,其中每层上的所有值都相同,但每张纸上的值随着层数的增加而增加。
例如,增量可以由 x = (0:0.5:2*pi) 定义。
我尝试过使用 repmat,但这似乎只会产生另一个方向的矩阵。
谢谢!
另一种可能性:使用ndgrid
,这里用于创建一个 4×5×#x 数组:
x = 0:0.5:2*pi;
[~,~,out] = ndgrid(1:4,1:5,x);
您可以使用repmat
and执行此操作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
定义 x
x = (0:0.5:2*pi);
这将具有沿行(第二维)变化的值。将您的 x 更改为沿您想要的维度(第 3 维度)变化:
x = permute(x, [1, 3, 2]);
然后重新格式化它:
x = repmat(x, [3, 3, 1]);