首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >利用MATLAB绘制全球海面温度

利用MATLAB绘制全球海面温度
EN

Stack Overflow用户
提问于 2015-05-20 14:34:35
回答 2查看 1.3K关注 0票数 0

我试图用GRiB格式的JMA数据集在MATLAB上绘制2015年4月全球海面温度图。我还安装了nctoolbox和m_map工具箱。

下面是我的代码:

代码语言:javascript
复制
!wget http://ds.data.jma.go.jp/tcc/tcc/products/elnino/cobesst/gpvdata/2010-2019/sst201504.grb
nc=ncgeodataset('sst201504.grb')
nc.variables %to check the variable names in this file
lat=double('lat');
lon=double('lon');
sst=double(squeeze('Water_temperature_depth_below_sea'));
m_proj('miller','lat',[min(lat(:)) max(lat(:))],...'lon',[min(lon(:)) max(lon(:))])
m_pcolor(lon,lat,sst);

但是,当我使用m-pcolor函数时,将生成以下错误消息:

代码语言:javascript
复制
Error using pcolor (line 53)
Color data input must be a matrix.

Error in m_pcolor (line 53)
[h]=pcolor(X,Y,data,varargin{:});

不过,我仍然可以用下列代码绘制海岸线和网格线,但不存在色温异常:

代码语言:javascript
复制
m_coast;
m_grid;

代码中有遗漏什么吗?latlon1x3双数组,而sst1x33双数组。

EN

回答 2

Stack Overflow用户

发布于 2015-05-30 10:00:31

我认为问题在于不正确地定义变量和数组大小,因为latlonsst的数组大小不匹配。不过,这与文件问题有关,因为latlon的数组大小太小,无法显示网格化的全局SST数据。

票数 0
EN

Stack Overflow用户

发布于 2017-04-16 04:52:57

我不知道这是否能解决你所有的困难,但是double('lat')正在将字符串"lat“转换为double。永远是108 97 116。删除这样的引号: double(lat)。

同样适用于double(squeeze('Water_temperature_depth_below_sea')).您希望将变量转换为双倍,而不是变量的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30352785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档