%第一步按标准日期核对数据 EXCEL可操作,并在matlab中保存为riqi.mat
%第二步按时间取数据,也可以检查缺测率
clc %清屏
clear %清内存变量
load('riqi.mat'); %Excel中生成的标准序列日期
filenames = ls('*.mat');%以字符串数组的形式列出该路径下所有的txt文件
[m n] = size(filenames);%获取filenames的行列数
[mm nn] = size(riqi);
jieguo = zeros(mm,1).*NaN;
jiangshui = [];
for j = 1:m
fid = load(char(filenames(j,:)));
fid=struct2cell(fid);
fid=cell2mat(fid);
clear e;
nian = fid(:,5);
yue = fid(:,6);
ri = fid(:,7);
RHU = fid(:,8)./10;
shijian = cat(2,nian,yue,ri);
[C,ia,ib] = intersect(riqi,shijian,'rows'); %交集的逻辑运算
jieguo(ia,1) = RHU(ib,1);
jiangshui=[riqi,jieguo];
matname=char(filenames(j,1:5));
JDT=[matname,'转换完毕!'];
disp(JDT)
save(['D:\气象局kongfengD\气温站点数据\站点存储\',matname],'jiangshui');%转为mat格式
end
%另外一类数据可重复上述步骤
%第三步,两类数据的合并
clc %清屏
clear %清内存变量
filenames = ls('D:\气象局kongfengD\桑拿天火烤天计算\平均气温\*.mat');%以字符串数组的形式列出该路径下所有的txt文件
filenames1 = ls('D:\气象局kongfengD\桑拿天火烤天计算\相对湿度\*.mat');%以字符串数组的形式列出该路径下所有的txt文件
[m n] = size(filenames);%获取filenames的行列数
for j = 1:m
d=load(['D:\气象局kongfengD\桑拿天火烤天计算\平均气温\',char(filenames(j,:))]);
e=struct2cell(d);
temp=cell2mat(e);
clear d e;
d=load(['D:\气象局kongfengD\桑拿天火烤天计算\相对湿度\',char(filenames1(j,:))]);
e=struct2cell(d);
RHU=cell2mat(e);
clear d e;
RHU1=RHU(:,4);
clear RHU;
hebing=cat(2,temp,RHU1);
matname=char(filenames(j,1:5));
save(['D:\气象局kongfengD\桑拿天火烤天计算\',matname],'hebing');%转为mat格式
end
%后续就可以计算类似雾霾天,桑拿天,烧烤天等多个指标的综合判断
领取专属 10元无门槛券
私享最新 技术干货