3D array to cell array

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 550x129 corresponding to it? I looked at the num2cell documentation and it doesn't mention how to organise it into that format.

 Accepted 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

More Answers (0)

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Asked:

on 18 Apr 2019

Answered:

on 18 Apr 2019

Community Treasure Hunt

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

Start Hunting!