How to split 128x128 array into 64 ( 2x128 ) ?

1 view (last 30 days)
Hello
i have a 128x128 array which i need to split it into 64 array of size 2x128
How to do that ?
  2 Comments
Stephen23
Stephen23 on 4 Dec 2021
The MATLAB approach, where A is your 128x128 array:
C = mat2cell(A, 2*ones(1,64), 128)

Sign in to comment.

Accepted Answer

Voss
Voss on 4 Dec 2021
Let x be your original (128x128) array. Here's one way to create 64 arrays of size 2x128, which I will store in a single cell array called y:
[n,m] = size(x);
y = cell(1,n/2);
for i = 1:n/2
y{i} = x(2*i-[1 0],:);
end
This assumes you want pairs of adjacent rows of x to be a single element of y.
  3 Comments
Voss
Voss on 4 Dec 2021
x_reconstructed = vertcat(y{:});

Sign in to comment.

More Answers (1)

Matt J
Matt J on 4 Dec 2021
Download mat2tiles from
A=rand(128);
Acell=mat2tiles(A,[2,inf])
Acell = 64×1 cell array
{2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double} {2×128 double}

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!