我认为您可以使用permute 和repmat 实现此目的
为了方便,我假设t 是一个行向量。
octave:41> t
t =
0.932698 0.658920 0.090389 0.314648 0.509211
octave:42> size(E)
ans =
10 180
octave:43> P = repmat(permute(t,[3,1,2]), [size(E,1), size(E,2), 1]);
octave:44> size(P)
ans =
10 180 5
octave:45> P(1:3,1:3, :)
ans =
ans(:,:,1) =
0.93270 0.93270 0.93270
0.93270 0.93270 0.93270
0.93270 0.93270 0.93270
ans(:,:,2) =
0.65892 0.65892 0.65892
0.65892 0.65892 0.65892
0.65892 0.65892 0.65892
ans(:,:,3) =
0.090389 0.090389 0.090389
0.090389 0.090389 0.090389
0.090389 0.090389 0.090389
ans(:,:,4) =
0.31465 0.31465 0.31465
0.31465 0.31465 0.31465
0.31465 0.31465 0.31465
ans(:,:,5) =
0.50921 0.50921 0.50921
0.50921 0.50921 0.50921
0.50921 0.50921 0.50921
我不确定这是否正是您正在寻找的。但是E 中的值没有在任何地方表示,只是保留了维度,并且t 的值沿E 中每个元素的第三维度重复
注意:如果t 是一个cloumn 向量,它必须是permute(t, [2,3,1])。