matlab根据时间列筛选到特定时间段(小时、天、月、年)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、准备工作
  • 二、过程
    • 1.加载数据
    • 2.读入数据
      • 2.1 数据提取
      • 2.2 时间数据转换
      • 2.3时间数据提取
  • 总结
  • 附录

前言

提示:这里可以添加本文要记录的大概内容:

在处理带时间标签的数据时,往往需要对数据进行筛选,本文将介绍一下利用matlab根据时间标签对数据进行筛选的一种方法。

提示:以下是本篇文章正文内容,下面案例可供参考

一、准备工作

运行环境:Matlab2020a
准备数据:示例数据附带下载链接百度网盘下载链接。

二、过程

1.加载数据

代码如下(示例):

%% 清除环境变量
clc;
clear all;
close all;
% %% 加载数据
[number,txt,raw]=xlsread(strcat(file(i).folder, '\', file(i).name),1);

2.读入数据

代码如下(示例):

%% 加载数据
[filename,pathname]=uigetfile('*.xls');%打开文件夹下面的xls格式的文件
[number,txt,raw]=xlsread(filename);%number为double型数据;txt为文本型数据;raw为合并型数据

工作变量

2.1 数据提取

由于.xls格式存储数据可能为cell类型或char类型,无法识别,因此需要对其进行数据类型转换。

%% 数据转换
data1=raw(2:end,3);
data2=raw(2:end,4);
data1=cellfun(@str2num,data1);
data2=cellfun(@str2num,data2);

2.2 时间数据转换

由于时间存储的txt文本格式,因此也需要对其转换为datetime格式。

%% 时间格式转换
time=raw(2:end,2);
time=datetime(time,'InputFormat','yyyy-MM-dd HH:mm:ss.SSS');%转换为datetime格式
shuju=datevec(time);%利用datevec函数将时间转换为矩阵

2.3时间数据提取

%% 特定时间及数据提取
%以2022年8月11日的data1和data2
m=1;
for i=1:size(shuju,1)
    if shuju(i,1)==2022&&shuju(i,2)==8&&shuju(i,3)==11
        need_data(m,:)=[data1(i) data2(i)];
        m=m+1;
    end
end

总结

本文简单介绍了matlab利用时间标签对数据的筛选的使用方法。

附录

%% 清除环境变量
warning off;
clc;
clear all;
close all;
%% 加载数据
[filename,pathname]=uigetfile('*.xls');%打开文件夹下面的xls格式的文件
[number,txt,raw]=xlsread(filename);
%% 数据转换
data1=raw(2:end,3);
data2=raw(2:end,4);
data1=cellfun(@str2num,data1);
data2=cellfun(@str2num,data2);
%% 时间格式转换
time=raw(2:end,2);
time=datetime(time,'InputFormat','yyyy-MM-dd HH:mm:ss.SSS');
shuju=datevec(time);
%% 特定时间及数据提取
%以2022年8月11日的data1和data2
m=1;
for i=1:size(shuju,1)
    if shuju(i,1)==2022&&shuju(i,2)==8&&shuju(i,3)==11
        need_data(m,:)=[data1(i) data2(i)];
        m=m+1;
    end
end

版权声明:本文为博主作者:期待加薪的打工人原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/gjx18084061690/article/details/129405322

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2024年4月22日
下一篇 2024年4月22日

相关推荐