MATLAB: 3D array to cell array

3d arraycell arraysmatrix arraynum2cell

If I had a 3D array of 550x129x3, how would I transform this into a cell array consisting of 3 cells in the array which contains 550×129 corresponding to it? I looked at the num2cell documentation and it doesn't mention how to organise it into that format.

Best Answer

Use the mat2cell (link) function:
A = rand(550, 129, 3); % Create Matrix
C = mat2cell(A, size(A,1), size(A,2), ones(1,size(A,3))); % Cell Array
Check = cell2mat(cellfun(@size, C, 'Uni',0)) % Check (Delete Later)
producing:
Check(:,:,1) =
550 129
Check(:,:,2) =
550 129
Check(:,:,3) =
550 129