Vector and matrices dotwise multiplication

1 Ansicht (letzte 30 Tage)
Piment
Piment am 8 Apr. 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.

Antworten (1)

per isakson
per isakson am 8 Apr. 2013
Try
a * transpose( b )
where
a = [ a1, a2, ... an ]
b = [ b1, b2, ... bn ]
  1 Kommentar
Piment
Piment am 13 Apr. 2013
Bearbeitet: Piment am 13 Apr. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by