您的位置:首页 > 编程语言 > MATLAB

Matlab 等间隔读取RIENX 气象(m)文件

2018-03-13 18:42 369 查看
cdddis分析中心(ftp://cddis.gsfc.nasa.gov/)下载的RIENX气象(m)文件间隔为30s,实际需要间隔2h的气压和温度信息。使用matlab读取m文件,并从中提取2小时间隔的信息,输出到excel表格。
以darw2015年第1天至365天数据为例:
①数据提取并存储
clear all;
clc;
for n=1:365              %m文件天数从第1天到365天
    ns=num2str(n,'%03d');         % 数值转字符串,固定三位数字(001,010,100)与文件名相同
name=['darw',ns,'0.15m'];  % 字符串拼接得到文件名称
ffid=fopen(name,'rt');     % 打开文本文件,从第一行开始读取,数据存储在cell里
i = 1;
while feof(ffid) == 0    
    tline{i,1} = fgetl(ffid);
    i = i+1;
end    
% 提取间隔2h的数据,从0时至22时,RINEX m文件采样间隔为30s,2h间隔为240行
for i=18:240:2658         
    a((i+222)/240,:)=str2num(tline{i,1});
end
% 提取压强p 和温度 t的值
for i=1:12
    b(i,1)=a(i,7);
    b(i,2)=a(i,8);
end
 xlswrite(ns,b)        %按天数写入excel
end

 ②数据读取与合并
clear;
clc;
for n=1:360
n=num2str(n,'%03d');                 % 数字转字符串
eval(['a',n,'=','xlsread(n)']);  %读取数据,存储变量名为a001-a360
end
n=2; ss=a001;                %合并变量
while(n<361)
    n=num2str(n,'%03d');
    ss=cat(1,ss,eval(['a',n]));
    n=str2num(n);
    n=n+1;

end
 xlswrite(‘darw001-360.xlsx’,ss)    %写入excel
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息