delete zeros in cell array

4 visualizzazioni (ultimi 30 giorni)
Elysi Cochin
Elysi Cochin il 13 Apr 2021
Commentato: Elysi Cochin il 14 Apr 2021
i have a cell_array with values
cellarr = {'b','a','a','a','b';0,'c',0,'b',[];0,'a',0,'d',0;'a','a','b',[],[]};
i wanted to delete the zeros in the cell_array so as to get the new cell array as below
shift the remaining columns to left after deleting the zero
new_cellarr = {'b','a','a','a','b';'c','b',[],[],[];'a','d',[],[],[];'a','a','b',[],[]};
  1 Commento
madhan ravi
madhan ravi il 13 Apr 2021
I think what you are describing is not what show in the expected result.

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 13 Apr 2021
Using the attached file sortlidx.m,
cellarr = {'b','a','a','a','b';0,'c',0,'b',[];0,'a',0,'d',0;'a','a','b',[],[]}
cellarr = 4×5 cell array
{'b'} {'a'} {'a'} {'a' } {'b' } {[0]} {'c'} {[0]} {'b' } {0×0 double} {[0]} {'a'} {[0]} {'d' } {[ 0]} {'a'} {'a'} {'b'} {0×0 double} {0×0 double}
map=cellfun(@isnumeric,cellarr);
cellarr(map)={[]};
[~,isort]=sortlidx( ~map ,2,'descend');
cellarr = cellarr(isort)
cellarr = 4×5 cell array
{'b'} {'a'} {'a' } {'a' } {'b' } {'c'} {'b'} {0×0 double} {0×0 double} {0×0 double} {'a'} {'d'} {0×0 double} {0×0 double} {0×0 double} {'a'} {'a'} {'b' } {0×0 double} {0×0 double}

Più risposte (0)

Categorie

Scopri di più su Cell Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by