Splitting 1 cell into 3 cells

Here I have a cell 52*3 cell. I want to split this into 3 cells; each of 52*1 size .
I want this to be done in any automated way like using by any loop or any other way
How can I split this?

Answers (1)

If ca is your 52x3 cell array, you can make 3 cell arrays by taking each column and putting it into its own cell array
col1 = ca(:, 1);
col2 = ca(:, 2);
col3 = ca(:, 3);
Each of those is a 52 x 1 cell array.
Please refer to the FAQ.
I think it will help you a lot.

4 Comments

Durlov Rahman
Durlov Rahman on 4 Jul 2021
Edited: Durlov Rahman on 4 Jul 2021
@Image Analyst Yeah I know this way. But I want this to be done in any automated way like using by any loop or any other way
Image Analyst
Image Analyst on 4 Jul 2021
Edited: Image Analyst on 4 Jul 2021
@Durlov Rahman, this is the simplest, most straightforward way, and the most compact (if that matters).
Not sure of your definition of automated, but this is as automated as any other way. No manual/interactive user assistance is required.
Surely you don't mean to do the terrible operation advised strongly against in the FAQ, do you?
Maybe you should just avoid creating the data in that 52x3 cell array form to begin with. If all the cells contain the same size array, it's best to use a regular double array. Cell arrays are horribly inefficient and wasteful of memory.
Durlov Rahman
Durlov Rahman on 4 Jul 2021
Edited: Durlov Rahman on 4 Jul 2021
yeah brother you are right. But I was thinking that if there is 52*4 cell, then 4 cells of 52*1 size will be automatically generated. if 52*5 then 5 cells of 52*1 size will be automatically generated. I want a way in which I need not declare col1 col2 col3 col4 etc.every time. This variable will be automatically created
Who made this cell array? Was it you? Or were you given it by someone else so you are stuck with it? Frankly, I don't see anything wrong with leaving it in an array. If you need to extract one column or the contents of one cell, you can do that just one-by-one as you need it inside whatever loop you're running.

Sign in to comment.

Asked:

on 4 Jul 2021

Commented:

on 4 Jul 2021

Community Treasure Hunt

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

Start Hunting!