How to get the smallest value in submatrices

1 view (last 30 days)
Hung Dao
Hung Dao on 2 Oct 2021
Commented: Hung Dao on 2 Oct 2021
I would appreciate if you could help me with this problem.
I have a big matrix , where are submatrices of the same size.
I want to get a vector containing the smallest elements in each submatrices. I want to avoid for loop as it might slow down my whole program.

Accepted Answer

Bruno Luong
Bruno Luong on 2 Oct 2021
B = 10×2
3 7 6 6 6 3 3 5 3 9 3 5 1 5 5 9 8 2 7 8
[m,n] = size(B);
k = 5;
if mod(m,k)
error('m must divisible by k');
minsub = min(reshape(B,[m/k k n]),[],[1 3]).'
minsub = 5×1
3 3 3 1 2
  1 Comment
Hung Dao
Hung Dao on 2 Oct 2021
Thank you very much.
This is exactly what I need.

Sign in to comment.

More Answers (1)

Kevin Holly
Kevin Holly on 2 Oct 2021
Hung Dao
Hung Dao on 2 Oct 2021
My apologies for the confusion.
My algorithm leads to a big matrix, not the submatrices.
But I need to partition the big matrix into submatrices of the same size, and in each submatrix I want to find the minimum value.
I hope it is clear now.
Thank you.

Sign in to comment.




Community Treasure Hunt

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

Start Hunting!