pick up elements from a cell array and the result must be a cell array

3 visualizaciones (últimos 30 días)
I want to pick up all elements of a cell array except the last element. When I do V{1:end-1}, the result seems not to be a cell array.

Respuesta aceptada

Guillaume
Guillaume el 14 de Ag. de 2019
Editada: Guillaume el 14 de Ag. de 2019
With a cell array, {} operates on the content of the cells, () operates on the cell array itself.
So, to crop a cell array:
newcellarray = yourcellarray(1:end-1);
Note that
yourcellarray{indices}
retuns a comma separated list of the content of the cells indexed by indices.
edit: so a convoluted way of also cropping the cell array (as long as it is a row cell vector) would be:
newcellarray = {yourcellarray{1:end-1}};
which would unpack all the elements but the last into a comma-separated list and repack it into a new cell array. A bit convoluted!

Más respuestas (1)

madhan ravi
madhan ravi el 14 de Ag. de 2019
cellfun(@(x) reshape(x(1:end-1),[],1), V,'un',0)

Categorías

Más información sobre Loops and Conditional Statements 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