Combining Cells into a single cell

421 次查看(过去 30 天)
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 个评论
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.

请先登录,再进行评论。

采纳的回答

Thorsten
Thorsten 2013-1-9
编辑:Thorsten 2013-1-9
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
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 个评论
Pooja Patel
Pooja Patel 2017-2-24
thank you so much mr.simon. this is working very well.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by