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

215 views (last 30 days)
Malarvizhi on 10 Oct 2013
Answered: AMEN BARGEES on 18 Jul 2022
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. Can anyone help?
##### 1 CommentShowHide None
Roger Stafford on 10 Oct 2013
By my arithmetic, if you divide a 256x256 matrix into separate 16x16 blocks, there should be 256 of these blocks, not 16.

Sign in to comment.

### Accepted Answer

David Sanchez on 10 Oct 2013
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);
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### More Answers (3)

Malarvizhi on 13 Feb 2014
Can you help me to find the Sum of absolute difference for two matrices?
##### 1 CommentShowHide None
MAMATHA YADAVALLI on 7 Dec 2017
can anyone tell me how to divide 90*90 matrix into 729 3*3 sub matrices?

Sign in to comment.

Namwon Kim on 26 Aug 2019
x = zeros(256,256) % Input is (256,256).
a = size(x, 1);
b = size(x, 2);
numParts = 16
c = floor(a/numParts);
d = rem(a, numParts);
partition_a = ones(1, numParts)*c;
partition_a(1:d) = partition_a(1:d)+1;
e = floor(b/numParts);
f = rem(b, numParts);
partition_b = ones(1, numParts)*e;
partition_b(1:f) = partition_b(1:f)+1;
% Split matrix rows into partition, storing result in a cell array
% 256X256 matrix into sixteen 16X16 blocks
output = mat2cell(x, partition_a, partition_b);
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

AMEN BARGEES on 18 Jul 2022
x=your input marrix
ans= reshape(x,16,16,[]);
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Categories

Find more on Neighborhood and Block Processing 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!