How to divide a 3d matrix by a 2d matrix along one dimension
13 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Tillmann Spellauge
el 23 de Ag. de 2018
Comentada: Star Strider
el 23 de Ag. de 2018
Hi everybody,
I have 3d Matrix named Data, consisting of several grey scale Pictures. I want to divide it by a 2d Matix called DataMax containing the maximum intensity among the pictures at a pixel, in order to normalize Data in the 3rd dimension to 1.
I can perform the operation using a for loop:
DataMax = max(Data,[],3);
[x,y,z] = size(Data);
for k=1:z
Data(:,:,k) = Data(:,:,k)./DataMax;
end
However I would like to get rid of the loop in order to maximize performance.
Any ideas on how to do this?
0 comentarios
Respuesta aceptada
Star Strider
el 23 de Ag. de 2018
Data = bsxfun(@rdivide, Data, DataMax);
It is generally quite efficient.
2 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrices and Arrays 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!