Vector and matrices dotwise multiplication

1 vue (au cours des 30 derniers jours)
Piment
Piment le 8 Avr 2013
I have a n elements vector a1 a2 ... an
and n same-sized matrices b1 b2 ... bn
how can I do a1*b1 + a2*b2 + ... + an*bn without loop? I was thinking if there's a way to do something like multidimentsional array dotwise multiplication? Thanks.

Réponses (1)

per isakson
per isakson le 8 Avr 2013
Try
a * transpose( b )
where
a = [ a1, a2, ... an ]
b = [ b1, b2, ... bn ]
  1 commentaire
Piment
Piment le 13 Avr 2013
Modifié(e) : Piment le 13 Avr 2013
I'm not sure if I have made it clear enough, the thing is it's not gonna work because I've tried this before. this is what I did and what matlab spitted out:
>> a = [rand(1), rand(1), rand(1), rand(1)];
>> [b1, b2, b3, b4] = deal(magic(3));
>> b = [b1, b2, b3, b4];
>> a * transpose(b);
Error using *
Inner matrix dimensions must agree.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by