【问题标题】:Searching for empty cell of row in excel using matlab使用matlab在excel中搜索行的空单元格
【发布时间】:2016-10-05 14:00:24
【问题描述】:

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

【问题讨论】:

    标签: excel matlab


    【解决方案1】:

    cellfun 检查每个元素 isnan 和(因为您指定了非均匀输出)是否会返回一个元胞数组。您无法使用 == 比较元胞数组。这种不统一的输出在您的情况下是必不可少的,因为字符串上的isnan 返回一个逻辑数组

    isnan('abcde')
    
    % 0 0 0 0 0
    

    如果您真的想检查它们是否为空,您可能希望使用isempty 而不是isnan。你也可以使用统一输出(默认)

    empty_cells = cellfun(@isempty, raw)
    

    或者,如果您实际上有 NaN 值,请将 isnan 包装在 `any 中

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多