爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4649|回复: 4

关于matlab netcdf函数的求助

[复制链接]

新浪微博达人勋

发表于 2018-2-5 11:43:57 | 显示全部楼层 |阅读模式
MATLAB
问题截图:
问题概况: 我在运行程序的时候,它显示我的netcdf函数未定义,但我help这个函数,是有的,而且我在网上查了一下,2014版本应该是自带的,而且我也尝试了气象家园的netcdf插件的安装,但是装不上,应该怎么办呀
我看过提问的智慧: 看过
自己思考时长(天): 2
系统平台:

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

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

x
我在运行程序的时候,它显示我的netcdf函数未定义,但我help这个函数,是有的,而且我在网上查了一下,2014版本应该是自带的,而且我也尝试了气象家园的netcdf插件的安装,但是装不上,应该怎么办呀
ERHL$BOUS88H)ZE7L$2BYTV.png
L4GOK9ME5Z2]XWDG_0N``L5.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-5 13:42:47 | 显示全部楼层
这个netcdf 其实是一堆函数的打包,netcdf.open才是一个函数。
2011a版本以上,没有特殊要求的话,建议还是使用ncread等等函数吧,这样不用open和close,方便很多。

nc_dim = 'blablabla.nc';
lat = ncread(nc_dim,'lat');
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-5 17:39:21 | 显示全部楼层
ncinfo 或者ncdisp查看nc文件信息
ncread 读取变量
ncwrite 写nc文件

用这些高级函数确实比较方便
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2018-2-6 10:35:16 | 显示全部楼层
packard 发表于 2018-2-5 13:42
这个netcdf 其实是一堆函数的打包,netcdf.open才是一个函数。
2011a版本以上,没有特殊要求的话,建议还 ...

谢谢您的回复,但是我那个程序因为是已经编好的,我也试了一下换函数,但是后面就行不通,所以想咨询您一下,2014版的netcdf函数怎么安装,再次谢谢
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2018-2-6 13:15:28 | 显示全部楼层
lyy123 发表于 2018-2-6 10:35
谢谢您的回复,但是我那个程序因为是已经编好的,我也试了一下换函数,但是后面就行不通,所以想咨询您一 ...

不是特别懂你的情况。
原来的脚本不是已经想把文件close了吗,就是后面已经没再使用netcdf了,那怎么后面会行不通呢。。
用了高级函数ncread 以后,就不应该有open和close。你应该不会强行close而报错吧。。
把下面的nc文件名改成你真正的文件名。
  1. %高级函数
  2. nc_dim = 'blablabla.nc';  %TODO
  3. Lat = ncread(nc_dim,'lat');
  4. Lon = ncread(nc_dim,'lon');
  5. mask = ncread(nc_dim,'mask');

  6. nc_u = 'blabla.nc';  %TODO
  7. time = ncread(nc_u,'day');
复制代码


netcdf函数应该是自带的吧,我记得不需要特别安装。
但就是netcdf不是函数,netcdf.open 才是函数。
  1. %底层函数
  2. nc_dim = 'blablabla.nc';  %TODO
  3. nc = netcdf.open(nc_dim,'NOWRITE');
  4. varid1 = netcdf.inqVarID(nc,'lat');
  5. varid2 = netcdf.inqVarID(nc,'lon');
  6. varid3 = netcdf.inqVarID(nc,'mask');
  7. Lat = netcdf.getvar(nc,varid1);
  8. Lon = netcdf.getvar(nc,varid2);
  9. mask = netcdf.getvar(nc,varid3);
  10. netcdf.close(nc);

  11. nc_u = 'blabla.nc';  %TODO
  12. nc = netcdf.open(nc_u,'NOWRITE');
  13. varid4 = netcdf.inqVarID(nc,'day');
  14. time = netcdf.getvar(nc,varid4);
  15. netcdf.close(nc);
复制代码

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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