Dot product of matrix with scalar
1 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
采纳的回答
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
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
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!