爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 34279|回复: 6

[程序设计] matlab 如何把陆地数值变nan值

[复制链接]

新浪微博达人勋

发表于 2021-4-8 20:19:38 | 显示全部楼层 |阅读模式
10金钱

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

新浪微博达人勋

发表于 2021-4-8 21:12:41 | 显示全部楼层
陆地数值赋值nan?
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-4-9 10:10:20 | 显示全部楼层
要将陆地数值赋值nan,首先你要判定A矩阵陆地所在的位置(id),然后A(ID)=nan即可。如何判定该位置是否属于陆地,如果有经纬度,可以直接用inpolygon命令。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2021-4-11 17:35:59 | 显示全部楼层
ゼヅ欢チニ 发表于 2021-4-9 10:10
要将陆地数值赋值nan,首先你要判定A矩阵陆地所在的位置(id),然后A(ID)=nan即可。如何判定该位置是否 ...

谢谢您的方法
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-4-11 20:33:23 | 显示全部楼层
%我看前面已经有人提到用判断并且一个个赋值,其实数据多的话,属实麻烦
%如果有陆地的shp文件或者自行定义的边界
boux1=[陆地边界.X];%获取shp经度
bouy1=[陆地边界.Y];%提取shp维度
isin=inpolygon(datalon,datalat,boux1,bouy1);%判断数据内落在陆地区间内的情况
data(isin)=nan
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-4-12 11:20:17 | 显示全部楼层
KAY1997 发表于 2021-4-11 20:33
%我看前面已经有人提到用判断并且一个个赋值,其实数据多的话,属实麻烦
%如果有陆地的shp文件或者自行定 ...

这个方法不错
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

新浪微博达人勋

发表于 2021-4-13 14:55:25 | 显示全部楼层
可以先区分出陆地和海洋数据,然后再一行命令将陆地的值赋值为NaN就行了。
区分陆地和海洋,一般数据下载网站都会提供一个文件叫land_sea_mask,用这个文件矩阵跟原始数据矩阵相乘就能区分陆地和海洋了。
密码修改失败请联系微信:mofangbao
回复

使用道具 举报

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

本版积分规则

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

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

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