delete zeros in cell array

2 次查看(过去 30 天)
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 个评论
madhan ravi
madhan ravi 2021-4-13
I think what you are describing is not what show in the expected result.

请先登录,再进行评论。

采纳的回答

Matt J
Matt J 2021-4-13
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}

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Cell Arrays 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by