i have a matrix in which i need to slice into elements but in cell array form

Antworten (1)

Paul
Paul am 4 Sep. 2021

0 Stimmen

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 Kommentare

Jared Matthias
Jared Matthias am 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
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

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Version

R2021a

Tags

Gefragt:

am 4 Sep. 2021

Bearbeitet:

am 10 Sep. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by