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
。