爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 10624|回复: 20

[程序设计] MATLAB 2012b读取nc数据问题

[复制链接]

新浪微博达人勋

发表于 2014-4-26 20:11:05 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
请问一下MATLAB 2012b怎么读取nc数据呢,希望能发一个程序,我刚学MATLAB不会用····谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2014-4-28 14:52:29 | 显示全部楼层
本帖最后由 二爷名声在外 于 2014-4-28 14:57 编辑

如果你要批量读取,先放在一个文件夹下面,然后请参考以下代码:
file=dir('E:\graduate\experiment\*.dat');
filename=struct2cell(file)';
filenames=filename(:,1);
[n,m]=size(filenames);
for i=1:n %判断文件大小,小于20b的舍去
fid=fopen(filenames{i,1});fseek(fid,0,'eof');sz=ftell(fid);fclose(fid);
if (sz<20) continue;end;
%开始读取报文
d=ncread(filenames{i,1},'var');
end



密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2014-4-27 09:09:23 | 显示全部楼层
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-27 15:06:17 | 显示全部楼层
纸飞机lzu 发表于 2014-4-27 09:09
http://bbs.06climate.com/forum.php?mod=viewthread&tid=632&extra=page%3D1
还可以百度一下

那个我之前也看到了,可是回复里人们都说那个高版本MATLAB不适用,那个是个插件······
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-27 15:06:24 | 显示全部楼层
纸飞机lzu 发表于 2014-4-27 09:09
http://bbs.06climate.com/forum.php?mod=viewthread&tid=632&extra=page%3D1
还可以百度一下

那个我之前也看到了,可是回复里人们都说那个高版本MATLAB不适用,那个是个插件······
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-27 22:48:08 | 显示全部楼层
20101301421 发表于 2014-4-27 15:06
那个我之前也看到了,可是回复里人们都说那个高版本MATLAB不适用,那个是个插件······

我是这么读的:>>var=ncread('xxx.nc','var')
你可以试试
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-28 12:30:59 | 显示全部楼层
纸飞机lzu 发表于 2014-4-27 22:48
我是这么读的:>>var=ncread('xxx.nc','var')
你可以试试

哦哦这样我也这样读了,但是不会批量读取,你可以教教我怎么批量读取吗
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-4-28 15:55:35 | 显示全部楼层
filename = dir('G:\CHFP2\OLR\*.nc');
OLR=zeros(90,12*32,10,13,144);
M=length(filename);% initial conditions
K=10;% ensemble size
for n = 1:M
    path = ['G:\CHFP2\OLR\',filename(n,1).name];
    file = netcdf(path,'nowrite');
    for ensemble=1:K
       OLR(:,n,ensemble,:,:) = file{'rlut'}(1:90,ensemble,31:43,:);
    end
end
用这种方法需要netcdf的安装包
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-28 16:02:40 | 显示全部楼层
sillyzara 发表于 2014-4-28 15:55
filename = dir('G:\CHFP2\OLR\*.nc');
OLR=zeros(90,12*32,10,13,144);
M=length(filename);% initial c ...

谢谢呢,但是我用的是MATLAB 2012b,好像听说这个不用那个安装包,说是自带的呢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-4-28 16:48:14 | 显示全部楼层
二爷名声在外 发表于 2014-4-28 14:52
如果你要批量读取,先放在一个文件夹下面,然后请参考以下代码:
file=dir('E:\graduate\experiment\*.dat ...

恩恩太感谢了,我去试试
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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