matlab - 如何检测单元格数组中的空单元格?

标签 matlab cell-array is-empty

如何检测元胞数组中的空单元格?我知道删除空单元格的命令是 a(1) = [],但我似乎无法让 MATLAB 自动检测哪些单元格为空。

背景: 我使用 a=cell(1,53) 预先分配了一个元胞数组。 然后我使用 if exist(filename(i)) 和 textscan 来检查文件,并将其读入。结果,当 filename(i) 不存在,一个空单元格的结果,我们移动到下一个文件。

当我读完所有文件后,我想删除a 的空单元格。我试过 if a(i)==[]

最佳答案

使用CELLFUN

%# find empty cells
emptyCells = cellfun(@isempty,a);
%# remove empty cells
a(emptyCells) = [];

注意:a(i)==[] 将不起作用。如果你想知道第 i 个单元格是否为空,你必须使用大括号来访问单元格的内容。此外,==[] 的计算结果为空,而不是 true/false,因此您应该使用命令 isempty 相反。简而言之:a(i)==[] 应该重写为 isempty(a{i})

关于matlab - 如何检测单元格数组中的空单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3400515/

相关文章:

image - 如何在 MATLAB 中的图像中绘制三角形?

java - 如何检查所有 JTexFields 是否为空?

matlab - 如何将矩阵划分为大小不等的子矩阵?

matlab - 考虑一些边距在单元格字符串中查找值

java - 具有对象的队列为 isEmpty() Java 返回 true

C# 空属性

matlab - 相对于 Octave/MATLAB 中的向量值移动矩阵中的行

matlab - 从自身内部删除 MATLAB 脚本是否安全?

matlab - 中心裁剪或填充帧内的图像

string - 将 regexprep 与元胞数组结合使用以对冒号进行格式化