How to divide 256X256 matrix into sixteen 16X16 blocks?

Illustration
Khloe - 2020-10-23T09:50:06+00:00
Question: How to divide 256X256 matrix into sixteen 16X16 blocks?

I am having pixel value of an image as 256X256 matrix. I want to divide it into sixteen 16X16 matrix (ie)an image into sub blocks. It is needed to compare each 16X16 with other.

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

You need to use mat2cell:

X = reshape(1:20,5,4)'
C = mat2cell(X, [2 2], [3 2])
celldisp(C)

This code returns

X =
     1     2     3     4     5
     6     7     8     9    10
    11    12    13    14    15
    16    17    18    19    20

C = 
    [2x3 double]    [2x2 double]
    [2x3 double]    [2x2 double]

C{1,1} =
     1     2     3
     6     7     8

C{2,1} =
    11    12    13
    16    17    18

C{1,2} =
     4     5
     9    10

C{2,2} =
    14    15
    19    2

In your case:

A = rand(256); % your matrix here
N = 16*ones(1,16);
B = mat2cell(A,N,N);


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!