2017-04-19 4 views
0

Wie kann ich für jedes Element eines Vektors mehrere Elemente aus einem anderen Vektor berechnen?Vektoren mit ungleicher Länge multiplizieren und das Ergebnis summieren

Zum Beispiel x=[1,2] und y=[1,2,3,4] dann müssen I vervielfachen und jedes Element x mit allen Elementen der y zu summieren, so wie;

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] 

Die Vektoren können unbegrenzte Elemente haben.

+0

[Matrixmultiplikation] (https://en.wikipedia.org/wiki/Matrix_multiplication) können Sie sich hier helfen, versuchen 'z = Summe (y‘ * x, 1) ' – user2999345

Antwort

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(:)); 

Man kann entweder bsxfun oder implizite Expansion verwenden, um eine Matrix von numel(x) * numel(y) Größe zu erzeugen und dann über die abgeflachte Array-Summen- auf ein endgültiges Ergebnis zu erhalten.

0

können Sie multiplizieren x mit Summe von y

result = x * sum(y) 
Verwandte Themen