爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 2003|回复: 9

[程序设计] Matlab读取数据维度问题

[复制链接]

新浪微博达人勋

发表于 2023-6-13 01:01:10 | 显示全部楼层 |阅读模式

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

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

x


nc数据是5维的,用Panoply打开显示的是(ens=1, time=1, lev=1, lat=121, lon=240).
在matlab中用ncread打开后(ncread(‘example.nc’, 'tm')),输出的变量只有2维 (lon*lat)。不太懂为什么其他三维不见了?

请求大神解答。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2023-6-13 09:10:34 | 显示全部楼层
其它维度都是一维   没有什么意义  可能matlab自动给你省略了
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-6-13 10:28:25 | 显示全部楼层
不知道什么样的情况会被省略。比如数据是(360*180*1*12*1)。这种情况下,读进去变成了4维,即(360*180*1*12),第3维就没有被省略。不知道这个规则是什么样的?谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-6-13 10:57:45 | 显示全部楼层
wjy_ecnu 发表于 2023-6-13 09:10
其它维度都是一维   没有什么意义  可能matlab自动给你省略了

不知道什么样的情况会被省略。比如数据是(360*180*1*12*1)。这种情况下,读进去变成了4维,即(360*180*1*12),第3维就没有被省略。不知道这个规则是什么样的?谢谢
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-6-13 11:06:25 | 显示全部楼层
紫藤萝 发表于 2023-6-13 10:57
不知道什么样的情况会被省略。比如数据是(360*180*1*12*1)。这种情况下,读进去变成了4维,即(360*180 ...

可以使用squeeze 把1维的情况 全部省略掉
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-6-13 11:25:27 | 显示全部楼层
后面都是1的时候往往都会被省略
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2023-6-13 12:56:16 | 显示全部楼层
MATLAB的读取(ncread)是有点问题的。
首先是维度的倒置,你使用ncdump或者ncl_filedump或者Python读取时,显示变量的维度是time、lat、lon,那么读进MATLAB以后,这个变量的维度就是lon、lat、time
还有就是矩阵的旋转,比如一个变量是10*20的大小,那么读入MATLAB以后就是20*10,在读取的时候要使用rot90()才能把它旋转到正确位置(不过配合经纬度使用的话这个没什么影响)
还有就是你提到的问题,比如一个变量大小是10*20*1,即最后一个维度的大小是1,那么MATLAB是会自动省略这个维度,但如果是10*1*20,它就不会省略这个大小为1的维度,我觉得这个设定真的很蠢。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-6-13 16:03:05 | 显示全部楼层
wjy_ecnu 发表于 2023-6-13 11:06
可以使用squeeze 把1维的情况 全部省略掉

哦哦  明白了 谢谢~~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-6-13 16:05:57 | 显示全部楼层
Nicko叔叔 发表于 2023-6-13 12:56
MATLAB的读取(ncread)是有点问题的。
首先是维度的倒置,你使用ncdump或者ncl_filedump或者Python读取时 ...

确实, 已经习惯了python的读取模式,一下子换成matlab脑袋转不过来。维度倒置过来 感觉挺别扭的。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-6-13 16:08:55 | 显示全部楼层
学习渣渣 发表于 2023-6-13 11:25
后面都是1的时候往往都会被省略

学习了 谢谢啦
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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