查看: 124|回复: 6|关注: 0
打印 上一主题 下一主题

[已解决] nc文件批量插值成1*57cell,不知道每个cell代表的是哪个文件

[复制链接]

新手

9 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
clc;
clear all;
datadir='I:\CMIP5\1850-2005\';
filelist=dir([datadir,'*.nc']);
k=length(filelist);
for s=1:k
??filename=[datadir,filelist(s).name];
??TasData??= ncread(filename,'tas');
??TimeData??= ncread(filename,'time');
??LonData??= ncread(filename,'lon');
??LatData??= ncread(filename,'lat');
TasData=permute(TasData, [2 1 3]);
[xx,yy,zz]=meshgrid(LonData,LatData,TimeData);
[xi,yi,zi]=meshgrid(120:0.5:135,43:0.5:54,TimeData);
vi{s}=interp3(xx,yy,zz,TasData,xi,yi,zi);
save('I:\CMIP5\1850-2005\filename2.mat','vi');
end

不知道按照什么顺序批量读取插值,跟文件名顺序也不一样啊,前两个是对的,后面就乱了,怎么能知道每个cell代表的文件是哪个?


新手

9 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
2#
?楼主| 发表于 4?天前 | 只看该作者
求大神帮助指导

MATLAB 基础讨论
版块优秀回答者

8

主题

411

帖子

70

最佳答案
  • 关注者: 16
3#
发表于 4?天前 | 只看该作者 |此回复为最佳答案
和filelist.name顺序是一样的

新手

9 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
4#
?楼主| 发表于 4?天前 | 只看该作者
fengziW 发表于 2019-9-20 13:26
和filelist.name顺序是一样的

感谢大神,我知道顺序了。大神,我只想要196101-200512的这部分时间,但是文件的时间段不是同一的,该怎么样写代码呢?

新手

9 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
5#
?楼主| 发表于 4?天前 | 只看该作者

MATLAB 基础讨论
版块优秀回答者

8

主题

411

帖子

70

最佳答案
  • 关注者: 16
6#
发表于 4?天前 | 只看该作者
可以把时间单独拿出来进行判断处理

新手

9 麦片

财富积分


050


4

主题

12

帖子

0

最佳答案
7#
?楼主| 发表于 4?天前 | 只看该作者
fengziW 发表于 2019-9-20 15:52
可以把时间单独拿出来进行判断处理

大神能帮帮忙么 我已经被这个问题困扰好几天了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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