Dot product of matrix with scalar

1 回表示 (過去 30 日間)
Meghana Dinesh
Meghana Dinesh 2015 年 8 月 14 日
編集済み: Stephen23 2015 年 8 月 17 日
This is a trivial question.
I have a matrix
B = [1 1 1; 5 5 5; 9 9 9; 2 2 2; 6 6 6; 10 10 10; 3 3 3; 7 7 7; 11 11 11; 4 4 4; 8 8 8; 12 12 12];
n = [1,1,1]
How can I find the dot product of each row of B with n?
I know I can use for loops and do this for all rows of B:
row1 = dot(B(i,:),n);
But there should be a better method using indexing......right? Using for loops isn't efficient.

採用された回答

Titus Edelhofer
Titus Edelhofer 2015 年 8 月 14 日
Hi,
multiplying each row with a vector is nothing else but the matrix vector multiplication:
B*n'
(n' since your n is a row vector).
Titus
  3 件のコメント
Stephen23
Stephen23 2015 年 8 月 14 日
編集済み: Stephen23 2015 年 8 月 17 日
It depends on the operation, but many binary operations (e.g. basic arithmetic and logical comparison) are supported by bsxfun:
>> B = [1 1 1; 5 5 5; 9 9 9; 2 2 2; 6 6 6; 10 10 10; 3 3 3; 7 7 7; 11 11 11; 4 4 4; 8 8 8; 12 12 12];
>> n = [1,1,1];
>> bsxfun(@minus,B,n)
ans =
0 0 0
4 4 4
8 8 8
1 1 1
5 5 5
9 9 9
2 2 2
6 6 6
10 10 10
3 3 3
7 7 7
11 11 11
Meghana Dinesh
Meghana Dinesh 2015 年 8 月 14 日
Thanks!

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by