提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
在处理带时间标签的数据时,往往需要对数据进行筛选,本文将介绍一下利用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函数将时间转换为矩阵
文章来源:https://www.toymoban.com/news/detail-521615.html
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利用时间标签对数据的筛选的使用方法。文章来源地址https://www.toymoban.com/news/detail-521615.html
附录
%% 清除环境变量
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
到了这里,关于matlab根据时间列筛选到特定时间段(小时、天、月、年)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!