Matlab:如何将两个较大向量的子向量相乘?

时间:2014-09-26 16:05:56

标签: matlab

是否有一些很好的方法可以做到。

我有2个向量,我只想进行子向量乘法。例如,

a = 1:6;  b = (1:6)'

然后我喜欢结果:

result = [1*1+2*2+3*3; 4*4+5*5+6*6] = [14; 77]

所以,我想将3个元素的每个子矢量相互乘以。最后,向量result的最后一个元素将是a*b

的总和或结果

提前感谢您的帮助

2 个答案:

答案 0 :(得分:2)

也许我错过了什么,但不是那么简单:

>> [a(1:3)*b(1:3) a(4:6)*b(4:6)]
ans =

   14   77

...

答案 1 :(得分:2)

这可以作为

完成
sum(reshape(a,3,[]).*reshape(b,3,[])).'

dot(reshape(a,3,[]),reshape(b,3,[])).'