You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用find函数筛选特定日期范围返回空向量而非目标向量?

问题原因及解决办法

嘿,这个问题的根源一眼就能看出来——你的日期筛选逻辑完全搞反了!

你写的条件是:

find(date<='01-Apr-2013 00:00:00' & date>'01-May-2013 00:00:00')

这个条件要求日期同时满足早于/等于2013年4月1日,且晚于2013年5月1日,这在时间线上根本不可能存在,自然会返回空的索引向量啦。

正确的解决步骤:

  • 首先明确你的目标:你应该是想提取2013年4月1日到5月1日之间的日期(注意边界是否包含端点)
  • 修正逻辑条件:如果要的是「包含4月1日、但不包含5月1日」的日期范围,把条件的符号和日期顺序调整过来:
    % 正确的条件写法
    target_indices = find(date >= '01-Apr-2013 00:00:00' & date < '01-May-2013 00:00:00');
    % 提取目标日期向量
    target_dates = date(target_indices);
    
  • 额外提醒:如果你的date是原始字符串数组,建议先转换成datetime类型再做比较,避免字符串格式带来的意外错误:
    date = datetime(date, 'InputFormat', 'dd-MMM-yyyy HH:mm:ss');
    

内容的提问来源于stack exchange,提问作者MiVi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:11:35