2017-04-19 46 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) 
相關問題