使用matlab在excel中搜索行的空单元格

时间:2016-10-05 14:00:24

标签: excel matlab

我试图让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

1 个答案:

答案 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);

或者,您可以检查单元格的anyall是否为空

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