merge cells into a single one

4 visualizaciones (últimos 30 días)
Qifan
Qifan el 28 de Jul. de 2014
Comentada: dpb el 28 de Jul. de 2014
I have a number of cells h={cell1; cell2; cell3;...cell100}, each cell contains one row but multiple columns (1*n, n varies across cells). Now I want a single cell g contain one row and the sum(n) columns. The basic method is g=[h(1) h(2) h(3) ... h(100)]. Since there are so many cells, it is not convenient to type all. Is there any effective way to make this by exploiting the index? Many thanks.
  1 comentario
Qifan
Qifan el 28 de Jul. de 2014
A simple transpose function works for cell array.

Iniciar sesión para comentar.

Respuestas (2)

Azzi Abdelmalek
Azzi Abdelmalek el 28 de Jul. de 2014
If your data looks like
v={1:3 10:20 4 100:105}
out=cell2mat(v)
  1 comentario
Qifan
Qifan el 28 de Jul. de 2014
Thanks, but actually I have h={1:3; 10:20; 4; 100:105} and I want to have the v you mentioned. The basic way is just too inconvenient to type.

Iniciar sesión para comentar.


dpb
dpb el 28 de Jul. de 2014
Editada: dpb el 28 de Jul. de 2014
c={cell2mat(c)};
...h={1:3; 10:20; 4; 100:105}
Well, you didn't say that in the original. But the answer is the same excepting you must transpose c --
c={cell2mat(c.')};
I returned it as a cell, Azzi just left it as the array; your choice of which you want.
  2 comentarios
Qifan
Qifan el 28 de Jul. de 2014
The transpose function works, but thanks for the help.
dpb
dpb el 28 de Jul. de 2014
.' is the transpose function as was pointed out that's what you needed to do once you revealed you had a column array instead of row. The ' operator is the complex conjugate transpose; for the cell array orientation the accidental use of ' instead of .' does no harm as it doesn't operate on the cell content, but it's a poor habit to get into.

Iniciar sesión para comentar.

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by