matrix divide in an array or 2d matrix.
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Victor
el 25 de Nov. de 2014
Comentada: Victor
el 25 de Nov. de 2014
I have a matrix that is 10000x10000x15. I need to divide each element in the first two dimension by a matrix that is 3x15. I could do this in a loop, i.e.
mat = rand(10000,10000,15);
submat = rand(3,15);
newmat = zeros(10000,10000,3);
for i =1:10000
for j = 1:10000
newmat(i,j,1:3)=reshape(mat(i,j,1:15),1,15)/submat;
end
end
but that would take a long time. Is there a better way to accomplish this that can do the division on the matrix as a whole?
0 comentarios
Respuesta aceptada
Sean de Wolski
el 25 de Nov. de 2014
Editada: Sean de Wolski
el 25 de Nov. de 2014
You can do the whole divide at once, using n instead of 10000 to avoid killing my laptop:
mat2 = reshape(mat,n^2,15);
nm2 = mat2/submat;
nm2 = reshape(nm2,n,n,3);
% Check equality
isequal(nm2,newmat)
ans =
1
Más respuestas (0)
Ver también
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!