# Multiplying each column of a matrix with a specific value

30 visualizaciones (últimos 30 días)
Areesh Adil el 4 de Feb. de 2020
I have a matrix
mat=[2,1,0,0;1,0,0,0;0,0,0,1]
I want to multiply the first column by 25, the second column by 5, the third column by 10 and the fourth column by 1 in a way that I get:
mat=[50,5,0,0;25,0,0,0;0,0,0,1]
Also, can the answer be generalized as I might end up adding more rows later on.
Thanks
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

James Tursa el 4 de Feb. de 2020
Editada: James Tursa el 4 de Feb. de 2020
mat=[2,1,0,0;1,0,0,0;0,0,0,1]; % 2D matrix
f = [25,5,10,1]; % row vector
result = f .* mat; % element-wise multiply with virtual expansion of row vector
If you have an earlier version of MATLAB, then use bsxfun:
result = bsxfun(@times,f,mat); % same functionality as f .* mat
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Areesh Adil el 4 de Feb. de 2020
Thank you so much
I came up with a convoluted way where I would multiply with scalars and then horizontally concatenate. But this is so much simpler. Thanks

Iniciar sesión para comentar.

### Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

### Community Treasure Hunt

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

Start Hunting!

Translated by