Vector and matrices dotwise multiplication

1 view (last 30 days)
Piment
Piment on 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.

Answers (1)

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

Sign in to comment.

Categories

Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!