Dot product of matrix with scalar

4 visualizaciones (últimos 30 días)
Meghana Dinesh
Meghana Dinesh el 14 de Ag. de 2015
Editada: Stephen23 el 17 de Ag. de 2015
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.

Respuesta aceptada

Titus Edelhofer
Titus Edelhofer el 14 de Ag. de 2015
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 comentarios
Stephen23
Stephen23 el 14 de Ag. de 2015
Editada: Stephen23 el 17 de Ag. de 2015
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 el 14 de Ag. de 2015
Thanks!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by