How to downsample the 3D matrix in matlab??
18 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Rizwan Khan
el 24 de Jul. de 2022
Comentada: Rizwan Khan
el 25 de Jul. de 2022
Due to computational limitations, I need to downsample the 3D (1500x1500x1700) matrix by a factor of 2. The binning process should merg the 2x2x2 voxels and assign the mean intensity value of the group to the corresponding voxel in the reduced image.
0 comentarios
Respuesta aceptada
Jan
el 24 de Jul. de 2022
X = rand(1500, 1500, 1700); % 28.5 GB - does not run in the forum!
Y = reshape(X, 2, 750, 2, 750, 2, 850);
Z = squeeze(sum(Y, [1,3,5])) / 8;
size(Z)
3 comentarios
Jan
el 25 de Jul. de 2022
Editada: Jan
el 25 de Jul. de 2022
@Rizwan Khan: What do you wnt to do, if the dimension is odd? Omit the last vector or include it in the output without averaging? I cannot guess, what you need.
X = rand(1501, 1501, 1701);
s = size(X);
s = s - rem(s, 2);
XX = X(1:s(1), 1:s(2), 1:s(3)); % Crop, Needs a lot of memory...
Y = reshape(X, 2, s(1) / 2, 2, s(2) / 2, 2, s(3) / 2);
Z = squeeze(sum(Y, [1,3,5])) / 8;
Más respuestas (0)
Ver también
Categorías
Más información sobre Graph and Network Algorithms 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!