我试图让matlab告诉我一个单元格是空的还是有数据。如果数据包含数据,则单元格中包含的数据将是日期。
我目前收到错误"未定义的运算符' =='对于类型' cell'"。
的输入参数x1range='b1';
[num,txt,raw]=xlsread('1.xlsx',1,x1range);
if cellfun(@isnan,raw,'UniformOutput',false)==1
fprintf('empty')
else
fprintf('notempty')
end
答案 0 :(得分:0)
cellfun
检查每个元素isnan
和(因为您指定了非均匀输出)是否将返回一个单元格数组。您无法使用==
比较单元格数组。这种非均匀输出在您的情况下是必不可少的,因为字符串上的isnan
返回逻辑数组。
isnan('abcde')
% 0 0 0 0 0
如果您确实想检查它们是否为空,则可能需要使用isempty
而不是isnan
。而且你也可以使用统一输出(默认)
empty_cells = cellfun(@isempty, raw)
或者如果你真的有NaN
个值,请在{any
isnan
empty_cells = cellfun(@(x)any(isnan(x)), raw);
如果要查找哪些单元格为空,可以使用find
获取索引
empty_indices = find(empty_cells);
或者,您可以检查单元格的any
或all
是否为空
if all(empty_cells)
disp('All cells are empty')
elseif any(empty_cells)
disp('Some cells are empty')
else
disp('No cells are empty')
end