7

我在 MATLAB 中有一个单元格数组,可以说它cell_arr有零条目和非零单元格条目。例如:

cell_arr = {0, 0, 0, 0, 0, {1x3 cell}, {1x3 cell}, {1x3 cell}, {1x3 cell}};

有人可以告诉如何从cell_arror 中删除这些零条目,以找到非零条目的索引吗?此外,我想避免for循环执行这项工作。

我已经尝试过find函数,但是find函数不适用于元胞数组。我想知道是否存在做这项工作的单行语句/表达式?

4

2 回答 2

8

据我所知,没有单行功能。你必须结合一些功能。第一行查找元胞数组中的零,而第二行删除这些条目。注意()括号 iso{}用于删除。

尝试这个:

idxZeros = cellfun(@(c)(isequal(c,0)), cell_arr);
cell_arr(idxZeros) = [];
于 2013-09-11T12:15:48.173 回答
0
cell_arr(cellfun(@(x) ~x(1),cell_arr(:,1)),:) = []

请让我知道这是否有效。

于 2013-09-11T12:16:39.523 回答