Borrar filtros
Borrar filtros

Fill new row of cell array after delimiter

2 visualizaciones (últimos 30 días)
Priya
Priya el 17 de Abr. de 2013
My cell array (1 X 11) is as follows:
a = {'A','B','C',';','D','E','F',';','1','2','3'}
Each character
I want a matlab program to recognize ';'(semicolon) as delimiter and whatever follows it comes to next row.
Desired output is a cell array of order 3 X 3
{ 'A','B','C'
'D','E','F'
'1','2','3' }

Respuesta aceptada

Jan
Jan el 17 de Abr. de 2013
a = {'A','B','C',';','D','E','F',';','1','2','3'};
sep = find(strcmp(a, ';'));
b = a;
b(sep) = [];
b = transpose(reshape(b, sep(1) - 1), []);
  2 comentarios
Priya
Priya el 17 de Abr. de 2013
Hi Jan
It worked perfectly..
b = transpose(reshape(b, sep(1) - 1), [ ]);
But I did not understand the last line syntax. What does [ ] denotes ?
Jan
Jan el 17 de Abr. de 2013
It is a typo. The parenthesis must move:
b = transpose(reshape(b, sep(1) - 1, []));
Then RESHAPE changes the shape such, that the result has sep(1)-1 rows and the number of columns is determined automatically by the number of elements.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

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

Community Treasure Hunt

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

Start Hunting!

Translated by