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

Image Analyst
Image Analyst 2014년 11월 22일
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).

댓글을 달려면 로그인하십시오.

 채택된 답변

Star Strider
Star Strider 2014년 11월 22일

1 개 추천

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

trailokya
trailokya 2014년 11월 22일
Thanks a lot :)
Star Strider
Star Strider 2014년 11월 22일
My pleasure!
wesley lima
wesley lima 2021년 6월 24일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Orion
Orion 2014년 11월 22일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2014년 11월 22일

댓글:

2021년 6월 24일

Community Treasure Hunt

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

Start Hunting!

Translated by