Matlab 张量z方向向量间的内积

Matlab 张量z方向向量间的内积,matlab,Matlab,初始化: a = [1 2]'; z1 = [1 2 3;4 5 6]; z2 = [7 8 9;10 11 12]; z = cat(3,z1,z2); e = repmat(permute(a, [2 3 1 ] ),2,3); 衍生结果: a = [1 2]'; z1 = [1 2 3;4 5 6]; z2 = [7 8 9;10 11 12]; z = cat(3,z1,z2); e = repmat(permute(a, [2 3 1

初始化:

  a = [1 2]'; 
  z1 = [1 2 3;4 5 6]; 
  z2 = [7 8 9;10 11 12];
  z = cat(3,z1,z2);
  e = repmat(permute(a, [2 3 1 ] ),2,3);
衍生结果:

  a = [1 2]'; 
  z1 = [1 2 3;4 5 6]; 
  z2 = [7 8 9;10 11 12];
  z = cat(3,z1,z2);
  e = repmat(permute(a, [2 3 1 ] ),2,3);
查找
2x3
矩阵
t
其元素是
t(1,1)=z(1,1,:)和e(1,1,:)之间的内积
t(2,2)=z(2,2,:)和e(2,2,:)之间的内积等。
我想你想要这个:

t = permute(sum(bsxfun(@times, a, permute(z, [3 1 2]))), [2, 3, 1])
注意,我使用了
a
而不是
e
,因为
bsxfun
使
repmat
无效


现在
t(1,1)
等于
z(1,1,:)
e(1,1,:)
t(1,2)
等于
z(1,2,:)
e(1,2,:)
等的内积。

你能提供
z
的输出和示例吗?我假设你希望
t(1,1)
(e(1,1,:)
t(1,2)
=
挤压(z(1,2,:)”*挤压(e(1,2,:)
等…?我已经重新表述了问题,以获得所有具体结果。你确定你的新
z
吗?它的维度与以前不同。因为现在
z(1,1,:)
有两个元素,其中
e(1,1,:)
有4个…那么您在寻找什么产品呢?请提供一个数字示例
t
对不起,我忘了更改
a