matlab - 删除 MATLAB 中的空单元格

标签 matlab cells

我想删除 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/

相关文章:

PHP - 在表格行中添加特定的背景颜色

c++ - 使用 Matio 在 C++ 中打开 3d matlab 文件

javascript - 使用 JavaScript 通过迭代表来计算总价

extjs - 如何在Extjs中更改网格脏单元格的背景颜色

matlab - 为什么 isscalar、isvector 和 ismatrix 对于 A = 1 都为真?

java - 多维数组,如何检查与某些单元格相邻的所有相邻图 block ?

matlab - 验证文件夹内容

matlab - 是什么原因导致错误 "Row ' c140 8' infeasible, all entries at implied bounds."?我怎样才能在matlab中显示它?

arrays - 删除数组单元格内的元素 MATLAB