我在MATLAB中有一个单元格数组,比如cell_arr
,它有零条目以及非零单元格条目。例如:
cell_arr = {0, 0, 0, 0, 0, {1x3 cell}, {1x3 cell}, {1x3 cell}, {1x3 cell}};
有人可以告诉我们如何从cell_arr
删除这些零条目,或者找到非零条目的索引?另外,我想避免执行此作业的for
循环。
我已经尝试过find
函数,但find
函数不适用于单元格数组。我想知道是否存在执行此作业的单行语句/表达式?
答案 0 :(得分:8)
据我所知,没有单线功能。你必须结合一些功能。
第一行在单元格数组中找到零,而第二行删除这些条目。请注意()
括号i.s.o. {}
要删除。
试试这个:
idxZeros = cellfun(@(c)(isequal(c,0)), cell_arr);
cell_arr(idxZeros) = [];
答案 1 :(得分:0)
cell_arr(cellfun(@(x) ~x(1),cell_arr(:,1)),:) = []
如果有效,请告诉我。