Finding a 2d block with highest average inside a 2d window

1 view (last 30 days)
Consider a matrix A(52,34) How to find out which 2d block size(3,3) has the highest average in it

Accepted Answer

Walter Roberson
Walter Roberson on 1 Mar 2018
[~, idx] = max(conv2(A, ones(3,3),'same'))
[r, c] = ind2sub(size(A), idx);
r and c is now the index of the center of the block that had the highest average.
Walter Roberson
Walter Roberson on 2 Mar 2018
[~, idx] = max( reshape(conv2(A, ones(3,3),'same'), [], 1) );
[r, c] = ind2sub(size(A), idx);

Sign in to comment.

More Answers (0)


Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by