我想删除 matlab 元胞数组底部的所有空单元格。然而,我发现的所有代码示例都将矩阵折叠为一个向量,这不是我想要的。
所以这段代码
a = { 1, 2; 3, 4; [], []}
emptyCells = cellfun('isempty', a);
a(emptyCells) = []
这个向量的结果
a = [1] [3] [2] [4]
但我想要这个数组
a =
[1] [2] [3] [4]
我该怎么做?
最佳答案
如果要删除元胞数组中所有元胞为空的行,可以使用以下方法:
a = { 1, 2; 3, 4; [], []}
emptyCells = cellfun('isempty', a);
a(all(emptyCells,2),:) = []
a =
[1] [2]
[3] [4]
它在您的公式中不起作用的原因是,如果您使用数组进行索引,输出将被重新整形为一个向量(因为不能保证整个行或列都将被删除,而不仅仅是某处的单个元素).
关于matlab - 删除 MATLAB 中的空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9697900/