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


前言

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

在处理带时间标签的数据时,往往需要对数据进行筛选,本文将介绍一下利用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
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐