How to make a cell array of cell arrays

16 views (last 30 days)
Hi,
How does one make a cell array of cell array in Matlab ? Let's A = (1:70), how can I transform this into a 14x1 cell array for which every cell contains 5 numbers ?
Thank you
  1 Comment
Adam Danz
Adam Danz on 6 Aug 2019
Ha! You got 2 answers at almost the same time with almost the same variable names and the same explanation of terminology.

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 6 Aug 2019
Edited: Adam Danz on 6 Aug 2019
"how can I transform this into a 14x1 cell array for which every cell contains 5 numbers"
What you're describing is a cell array of vectors, not a cell array of cells.
c = mat2cell(reshape(A,5,14),5,ones(1,14)); % For column vectors
or
c = mat2cell(reshape(A,5,14)',ones(1,14),5); % For row vectors

More Answers (2)

the cyclist
the cyclist on 6 Aug 2019
Here is one way:
A = 1:70;
C = cell(14,1);
for ii = 1:14
C{ii} = A(5*ii-4:5*ii);
end
To be clear on terminology (and what you actually want) ... this will be a cell array of numeric vectors, not a cell array of cell arrays.

madhan ravi
madhan ravi on 6 Aug 2019
Edited: madhan ravi on 6 Aug 2019
Wanted = num2cell(reshape(A,5,[]),1).'

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!