Matrix slicing in matlab

53 views (last 30 days)
Jared Matthias
Jared Matthias on 4 Sep 2021
Edited: Jared Matthias on 10 Sep 2021
i have a matrix in which i need to slice into elements but in cell array form

Answers (1)

Paul
Paul on 4 Sep 2021
Use mat2cell
x = rand(4,2); % the matrix
c = mat2cell(x,[2 2],2); % the cell array
% verify
c{1} - x(1:2,:)
ans = 2×2
0 0 0 0
c{2} - x(3:4,:)
ans = 2×2
0 0 0 0
  2 Comments
Jared Matthias
Jared Matthias on 4 Sep 2021
edit i would want it to work for any size matrix ie a 2x4 matrix would give me 1x2 or a 6x8 matrix would give me a 3x4 cell array
Paul
Paul on 4 Sep 2021
x = rand(6,8);
% assuming row and column dimensions of x are both even
c = mat2cell(x,2*ones(1,size(x,1)/2),2*ones(1,size(x,2)/2))
c = 3×4 cell array
{2×2 double} {2×2 double} {2×2 double} {2×2 double} {2×2 double} {2×2 double} {2×2 double} {2×2 double} {2×2 double} {2×2 double} {2×2 double} {2×2 double}
c{2,2} - x(3:4,3:4)
ans = 2×2
0 0 0 0

Sign in to comment.

Tags

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!