How to multiply a matrix by certain numbers?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Royvg94
el 23 de Sept. de 2015
I want to multiply a matrix by a column vector in this way:
(4 2 3 8;7 9 1 5;6 4 8 3) * (4;8;2)
and then the result i want to get is:
(4*4 2*4 3*4 8*4;7*8 9*8 1*8 5*8;6*2 4*2 8*2 3*2)
3 comentarios
madhan ravi
el 30 de Jun. de 2019
xy = repmat(x,1,1,numel(x)) .* reshape(y,1,1,[]); % for version <=2016b bsxfun(@times,repmat(x,1,1,numel(x)) , reshape(y,1,1,[]))
Wanted = reshape(squeeze(xy).',1,[])
Respuesta aceptada
Stalin Samuel
el 23 de Sept. de 2015
A = [4 2 3 8;7 9 1 5;6 4 8 3];
B = [4;8;2]
for i = 1:length(B)
C(i,:) = A(i,:)*B(i)
end
1 comentario
Stephen23
el 23 de Sept. de 2015
Editada: Stephen23
el 30 de Jun. de 2019
Note that:
- The array C expands on every iteration, which is slow and inefficient. Preallcoation would resolve this.
- Using a loop is more complex than using vectorized code.
- The variable name i should be avoided, as it is the name of the imaginary unit.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!