2017-04-19 45 views
0

如何为矢量的每个元素计算另一个矢量的多个元素?将长度不等的矢量相乘并将结果相加

例如,x=[1,2]y=[1,2,3,4]然后我需要相乘和求和的x每个元素与y所有元素,就像这样;

x = [1,2] 
y = [1,2,3,4] 
z = [x1*y,x2*y] = [x1*y1+x1*y2+x1*y3+x1*y4,x2*y1+x2*y2+x2*y3+x2*y4] 

向量可以有无限元素。

+0

[矩阵乘法]的总和(https://en.wikipedia.org/wiki/Matrix_multiplication)可以帮助你在这里,试着去'Z = SUM(Y” * X,1)' – user2999345

回答

1
x = randi(10,3,1); 
y = randi(10,4,1); 

tmp = bsxfun(@times,x.',y); % Pre-R2016b 
% tmp = x.'*y; % Post R2016b method 
out = sum(tmp(:)); 

一个可以使用bsxfun或隐式的膨胀以产生numel(x) * numel(y)大小的矩阵,然后求和扁平阵列上得到一个最终结果。

0

你可以乘xy

result = x * sum(y) 
相关问题