## Combining Cells into a single cell

### Hello kity (view profile)

on 9 Jan 2013
Latest activity Commented on by kiarash Dousti

on 19 Jul 2016

### Thorsten (view profile)

How can I combine multiple cells in to a single cell

there are 6 cells, each m x n format (n is 17 in all)

I want a new cell created that just adds up below

so for example Cell1 is 50x17 Cell2 is 30x17 Cell3 is 20x17

new cell should then be : AllCell is 100x17

I thought of:

```Allcell=cell(Cell1+Cell2+Cell3,17);
```

but what then

Hassan F

### Hassan F (view profile)

on 9 Jan 2013

http://www.mathworks.se/help/matlab/matlab_prog/combine-cell-arrays.html

You should find your way from there on, and combine content of cell arrays.

Jan Simon

### Jan Simon (view profile)

on 9 Jan 2013

It slightly confusing: Do you want AllCell to be a scalar cell, which contains a 100x17 matrix?

Hello kity

### Hello kity (view profile)

on 9 Jan 2013

I found a way but i think it should be easier.

raw is from xlsread, a cell.

```A=length(raw1);
B=length(raw2);
C=length(raw3);
D=length(raw4);
E=length(raw5);
F=length(raw6);
lengthcell=A+B+C+D+E+F;
```
```All=cell(lengthcell+5,17);
```
```All(1:A, 1:17)=raw1;
All(A+2:A+B+1, 1:17)=raw2;
All(A+B+3:A+B+2+C, 1:17)=raw3;
All(A+B+C+4:A+B+C+D+3, 1:17)=raw4;
All(A+B+C+D+5:A+B+C+D+E+4, 1:17)=raw5;
All(A+B+C+D+E+6:A+B+C+D+E+F+5, 1:17)=raw6;
```

between every set of data there is a cell row free.

## Products

No products are associated with this question.

### Thorsten (view profile)

on 9 Jan 2013
Edited by Thorsten

### Thorsten (view profile)

on 9 Jan 2013

use the standard concatenation operator [ ]

AllCell = [Cell1; Cell2; Cell3; Cell4; Cell5; Cell6];

Hello kity

### Hello kity (view profile)

on 9 Jan 2013

hmm, i tried this but with , instead of ; inbetween the Cells.

Thank you

kiarash Dousti

### kiarash Dousti (view profile)

on 19 Jul 2016

Thanks a lot dear Thorsten. It reclaim me

### Jan Simon (view profile)

on 9 Jan 2013

If your cells are not called "Cell1", "Cell2", ... but you use an index as index (as suggested repeatedly and consequently in this forum), the concatenation is even easier:

```C{1} = rand(50, 17);
C{2} = rand(10, 17);
C{3} = rand(40, 17);
C{4} = rand(30, 17);
C{5} = rand(20, 17);
```
```AllC = {cat(1, C{:})};
```

Jan Simon

### Jan Simon (view profile)

on 9 Jan 2013

But the OP asked for the output to be a cell explicitly: "Allcell=cell(...".

Image Analyst

### Image Analyst (view profile)

on 9 Jan 2013

Yeah, I know. But she's a beginner and beginners often think they want something when some other way is better, simpler, and easier. For example to get the 5th row, 16th column you could simply and naturally do theBigArray(5, 16). OR do something more complicated like AllCell(1){5, 16} or maybe it's just AllCell{5, 16} or something like that - I always have to play around with braces and parentheses til I get it right, that's why I avoid cell arrays if at all possible.

giri wira

### giri wira (view profile)

on 11 Jun 2015

thanks simon, very usefull

#### Join the 15-year community celebration.

Play games and win prizes!

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi