Combining Cells into a single cell

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

4 件のコメント

Hassan F
Hassan F 2013 年 1 月 9 日
編集済み: Hassan F 2013 年 1 月 9 日
You should find your way from there on, and combine content of cell arrays.
Jan
Jan 2013 年 1 月 9 日
It slightly confusing: Do you want AllCell to be a scalar cell, which contains a 100x17 matrix?
Hello kity
Hello kity 2013 年 1 月 9 日
編集済み: Hello kity 2013 年 1 月 9 日
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.
Jongyoung Song
Jongyoung Song 2017 年 1 月 24 日
AllCell = [Cell1; Cell2; Cell3];

サインインしてコメントする。

 採用された回答

Thorsten
Thorsten 2013 年 1 月 9 日
編集済み: Thorsten 2013 年 1 月 9 日

4 投票

use the standard concatenation operator [ ]
AllCell = [Cell1; Cell2; Cell3; Cell4; Cell5; Cell6];

2 件のコメント

Hello kity
Hello kity 2013 年 1 月 9 日
hmm, i tried this but with , instead of ; inbetween the Cells.
Thank you
kiarash Dousti
kiarash Dousti 2016 年 7 月 19 日
Thanks a lot dear Thorsten. It reclaim me

サインインしてコメントする。

その他の回答 (1 件)

Jan
Jan 2013 年 1 月 9 日

15 投票

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{:})};

5 件のコメント

Image Analyst
Image Analyst 2013 年 1 月 9 日
編集済み: Image Analyst 2013 年 1 月 9 日
Why even mess with cells, if it's just a simple numerical matrix at that point? Just simplify it
theBigArray = cat(1, C{:}); % A matrix, not a cell - simpler, yay!
Jan
Jan 2013 年 1 月 9 日
But the OP asked for the output to be a cell explicitly: "Allcell=cell(...".
Image Analyst
Image Analyst 2013 年 1 月 9 日
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 2015 年 6 月 11 日
thanks simon, very usefull
Pooja Patel
Pooja Patel 2017 年 2 月 24 日
thank you so much mr.simon. this is working very well.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

質問済み:

2013 年 1 月 9 日

コメント済み:

2017 年 2 月 24 日

Community Treasure Hunt

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

Start Hunting!

Translated by