查看: 108|回复: 0|关注: 0

[未答复] 请教matlab把NC4文件转为Excel

[复制链接]

新手

5 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 2019-12-2 22:33:27 | 显示全部楼层 |阅读模式
首先感谢各位进来帮忙,下面是我的问题:


我以前有这个代码,是处理气温数据的(同学帮忙写的)
现在我想处理附件文件,怎么修改下这个代码呢?
附件和图片是我下载的GLDAS里面2017年三小时时间尺度的4层土壤含水量
想批量处理成Excel
我的matlab是2018A  64位win7
QQ544828347

下面是代码:
clc;
clear all;
InPath = 'C:\Users\niu\Desktop\';
for i=1:1
ncdisp(strcat(InPath,'MERRA2_400.tavg1_2d_lnd_Nx.2017010',num2str(i),'.nc4.nc')) ;%获取所读取nc文件的基本信息
source = strcat(InPath,'MERRA2_400.tavg1_2d_lnd_Nx.2017010',num2str(i),'.nc4.nc');
varname1 = 'lon';
Lon_Data = ncread(source,varname1);
varname2 = 'lat';
Lat_Data = ncread(source,varname2);
varname3 = 'time';
Time_Data = ncread(source,varname3);
z=1;
while z<=24
varname4 = 'TS'; %spei是一个三维变量720*360*1368(lon*lat*time)
stlo = 1; stla = 1; stti = z;
start = [stlo,stla,stti]; %创建start变量,每一维开始的变量
locount = 102; lacount = 79; ticount = 1;
count = [locount,lacount,ticount];  %创建count变量,从每一维的start开始读取的总数目
stride = [1,1,1]; %设置读取的步长
TS_stride1 = ncread(source,varname4,start,count,stride);
T=TS_stride1-273.15;
A=T';
W=flipud(A);
xlswrite([num2str(i),'.xlsx'],W,z,'B2')
z=z+1;
end
end

数据.png

土壤含水量.rar

1.11 MB, 下载次数: 0

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表