如何检测元胞数组中的空单元格?我知道删除空单元格的命令是 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/