how to reduce the resolution of a matrix?

I have a matrix of dimension 140*140. i want to make it to dimension 35*35 by averaging grids. how can i do it in a simpler way? Actually i want to reduce the dimension by averaging the grids like [(1,1),(1,2),(2,1),(2,2)] and so on....

1 comentario

Image Analyst
Image Analyst el 22 de Nov. de 2014
It's like 1 or 2 lines if you use blockproc(), which is available in the Image Processing Toolbox. Do you have that toolbox? Or you can use mean2() in a for loop (also requires IPT).

Iniciar sesión para comentar.

 Respuesta aceptada

Star Strider
Star Strider el 22 de Nov. de 2014
This executes quickly on your small (140x140) matrix:
M = randn(140, 140); % Create Data
for k1 = 1:4:size(M,1)-3
idxr = 1+fix(k1/4);
for k2 = 1:4:size(M,2)-3
idxc = 1+fix(k2/4);
MF = M(k1:k1+3,k2:k2+3); % Matrix Frame (4x4)
MR(idxr,idxc) = mean(MF(:));
end
end
Look = MR(1:5,1:5) % View Sample Results

3 comentarios

trailokya
trailokya el 22 de Nov. de 2014
Thanks a lot :)
Star Strider
Star Strider el 22 de Nov. de 2014
My pleasure!
wesley lima
wesley lima el 24 de Jun. de 2021
hi, i have a similar problem that i am not able to solve, i have a matrix of 922x, 649x492 and i would like it to be 230x173x492.

Iniciar sesión para comentar.

Más respuestas (1)

Orion
Orion el 22 de Nov. de 2014

0 votos

There was the same problem here
Several solution have been proposed, pick the one you prefer, like

Categorías

Más información sobre Creating and Concatenating Matrices en Centro de ayuda y File Exchange.

Preguntada:

el 22 de Nov. de 2014

Comentada:

el 24 de Jun. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by