爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 9796|回复: 7

[经验总结] NCL用存2维矩阵的方式存储3维矩阵

[复制链接]

新浪微博达人勋

发表于 2014-6-27 10:29:59 | 显示全部楼层 |阅读模式

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

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

x
最近刚刚开始学习使用NCL,想用NCL存储3维矩阵,并写成txt文件输出,继而用matlab处理数据并画图。但存储数据量巨大的3D矩阵用write_table是不太好用的,我比较喜欢用write_matrix,用写二维矩阵的方式写三维矩阵,

最后用matlab编写ncl_reshape函数把维度重新提取出来,我认为这样比较方便,编辑好后以后一直可以用。
如果各位朋友有更好的方法,还请多多指教,谢谢~~^_^
重新提取维度的matlab的程序稍后上传,请在本站搜索“ncl_reshape提取ncl三维矩阵”。

wrf_save_3D_matrix.ncl

3.84 KB, 下载次数: 42, 下载积分: 金钱 -5

NCL存储三维矩阵数组

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 19710
发表于 2014-6-27 10:39:23 | 显示全部楼层
为啥不直接存成二进制格式或者NetCDF格式。。。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2014-6-27 10:37:14 | 显示全部楼层

用matlab把ncl存储的三维矩阵以ncl_reshape重新后处理成3维矩阵数组

接上一贴“[经验总结] NCL用存2维矩阵的方式存储3维矩阵"
最近刚刚开始学习使用NCL,想用NCL存储3维矩阵,并写成txt文件输出,继而用matlab处理数据并画图。但存储数据量巨大的3D矩阵用write_table是不太好用的,我比较喜欢用write_matrix,用写二维矩阵的方式写三维矩阵,
最后用matlab编写ncl_reshape函数把维度重新提取出来,我认为这样比较方便,编辑好后以后一直可以用。
如果各位朋友有更好的方法,还请多多指教,谢谢~~^_^
重新提取维度的matlab的程序请见附件。(因为matlab内置的reshape函数与我NCL存储的矩阵规则不太一样,所以需要单独写此函数)

ncl_reshape.m

333 Bytes, 下载次数: 3, 下载积分: 金钱 -5

提取NCL三维矩阵

密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-27 10:43:11 | 显示全部楼层
兰溪之水 发表于 2014-6-27 10:39
为啥不直接存成二进制格式或者NetCDF格式。。。

我刚刚开始学习使用NCL,以前都习惯用matlab,对您说的二进制格式和存netCDF格式的数据用的不是很顺,我还是个菜鸟,不过准备慢慢学习,之后想写成netCDF格式,毕竟matlab能直接读nc文件。受教了~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 成长值: 32430
发表于 2014-6-27 10:49:17 | 显示全部楼层
下次麻烦楼主能一个帖子说完的不要分成两个帖子,除非是必须分割不可的!多谢支持!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-27 11:00:29 | 显示全部楼层
二爷名声在外 发表于 2014-6-27 10:49
下次麻烦楼主能一个帖子说完的不要分成两个帖子,除非是必须分割不可的!多谢支持!

好的,抱歉我第一次发帖,没意识到这个问题,我以为matlab和ncl的程序是要分版块发的。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2014-6-27 11:03:40 | 显示全部楼层
function newdata=ncl_reshape(data,ny,nx,nlevel)
    newdata=zeros(nx,ny,nlevel);
    for i=1:nlevel
        num=ny*(i-1)+1;
        temp=data(num:num+ny-1,:);
        newdata(:,:,i)=temp';
    end

end
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-8-29 14:08:35 | 显示全部楼层
这个真心不错哦
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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