Vector and matrices dotwise multiplication

1 回表示 (過去 30 日間)
Piment
Piment 2013 年 4 月 8 日
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.

回答 (1 件)

per isakson
per isakson 2013 年 4 月 8 日
Try
a * transpose( b )
where
a = [ a1, a2, ... an ]
b = [ b1, b2, ... bn ]
  1 件のコメント
Piment
Piment 2013 年 4 月 13 日
編集済み: Piment 2013 年 4 月 13 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by