How to reduce a matrix size
109 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Oluwa KuIse
el 12 de Mzo. de 2012
Comentada: Martin Grden
el 1 de Jun. de 2021
I want to reduce the size of a matrix (M,N) by a fourth by averaging the values of neighboring cells.
So for instance the cells (1,1), (1,2), (2,1) and (2,2) in the old matrix will now be represented by their average which will be stored in (1,1) of the new matrix.
How can I code this?
Thanks!
0 comentarios
Respuesta aceptada
Jan
el 12 de Mzo. de 2012
X = rand(20, 30);
R = reshape(X, 2, 10, 2, 15);
S = sum(sum(R, 1), 3) * 0.25;
Y = reshape(S, 10, 15);
This can be wriiten in one line also. If more speed is needed you can use the faster C-Mex FEX: BlockMean.
0 comentarios
Más respuestas (1)
Christian Zitzmann
el 9 de Jun. de 2020
The question is very old and propably already solved, but I've got a very nice solution as well.
X = reshape(1:400,20,20);
Y = imresize(X,[3,3]);
Ver también
Categorías
Más información sobre Resizing and Reshaping 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!