查看: 332|回复: 6|关注: 0

[已答复] griddata插值后出现NAN怎么解决

[复制链接]

新手

10 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
发表于 2020-7-5 08:53:12 | 显示全部楼层 |阅读模式
griddata插值后出现NAN怎么将所有NAN再进行插值?

数据

数据
回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

610 麦片

财富积分


5001500


24

主题

324

帖子

71

最佳答案
  • 关注者: 11
发表于 2020-7-6 20:36:33 | 显示全部楼层
本帖最后由 15631202458 于 2020-7-6 20:40 编辑

出现NaN是因为你点数据覆盖不够,就是所谓的存在外插情况,griddata默认插值方法是'linear',这种插值仅对内插有效,外插都是赋值nan,可以用‘v4’方法,仅此方法可以插出不为nan的数据
这种外插是有风险的,因为你本身没有数据控制,所以正确性不保证吧;
解决方案就是在调用griddata函数采用‘v4’方法,例如:vq1 = griddata(x,y,z,xq,yq,'v4');

我给出了个例子你可以看一下。
  1. clear;
  2. [x,y,z]=peaks(30);
  3. [xq,yq] = meshgrid(-4:.2:4, -4:.2:4);
  4. %% 插值会出现nan
  5. vq = griddata(x,y,z,xq,yq);
  6. %% 采用‘v4’方法插值没有nan
  7. vq1 = griddata(x,y,z,xq,yq,'v4');
  8. %% 可以查看一下vq和vq1进行对比,vq1没有nan。
复制代码


另外你help griddata 可以仔细看下说明
我截下图你看下
untitled.jpg
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


1

主题

6

帖子

0

最佳答案
 楼主| 发表于 2020-7-7 01:01:48 | 显示全部楼层
15631202458 发表于 2020-7-6 20:36
出现NaN是因为你点数据覆盖不够,就是所谓的存在外插情况,griddata默认插值方法是'linear',这种插值仅对 ...

非常感谢,找到原因了
回复此楼 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


1

主题

8

帖子

0

最佳答案
发表于 2020-7-22 13:28:12 | 显示全部楼层
15631202458 发表于 2020-7-6 20:36
出现NaN是因为你点数据覆盖不够,就是所谓的存在外插情况,griddata默认插值方法是'linear',这种插值仅对 ...

您好 您说的非常详细,我想请教一下,我想把中国境内气象站点的降水插值到格点,我先用“v4”方法把站点数据插值到中国区域的外接矩形,再把中国区域裁剪出来,结果数值集中,偏大;且分布很不合理; 1595395247(1).jpg
“linear”插值结果数据合理,边上却有一些大区域的NAN点,不可忽略
1595395278(1).jpg
我想问一下您有过类似的经历吗,您觉得应该怎么处理呢,谢谢!
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

610 麦片

财富积分


5001500


24

主题

324

帖子

71

最佳答案
  • 关注者: 11
发表于 2020-7-22 13:50:54 | 显示全部楼层
笑他hh 发表于 2020-7-22 13:28
您好 您说的非常详细,我想请教一下,我想把中国境内气象站点的降水插值到格点,我先用“v4”方法把站点 ...

v4插值方法与其他几个不相同的,其他的都是通过三角网插值,所以比较准确,所以这种情况你就不要用v4方法了;

关于你说的“linear”插值方法会有很多区域为NAN,是因为插值方法是首先根据你离散点的分布情况,可以进行三角网的构建,可以看下Delaunay 三角剖分。那么它只能插值围城三角面内部的数据,外边的插不了。

解决办法,你可以给全国地图的矩形四个点赋初值,并加入到插值中,用“linear”方法,那么插值就不会出现nan;那么你就要考虑四个矩形的顶点怎么赋初值,离他比较最近那个点的值可以是一种方案;当然这样出来的效果不一定好,那么你可以在中国地图的外围选择一些列的点啊,并且赋初值,如何赋初值需要讲究技巧了。然后再去裁剪。
总之出现nan就是你数据控制不够,需要外插,外插就会有风险,想要不出现nan,那么你就需要外围的数据,而你有没有外围的数据,那么只能是造,如何造才是合理的这是关键。
回复此楼 已获打赏: 0 积分

举报

新手

12 麦片

财富积分


050


1

主题

8

帖子

0

最佳答案
发表于 2020-7-22 14:20:15 | 显示全部楼层
15631202458 发表于 2020-7-22 13:50
v4插值方法与其他几个不相同的,其他的都是通过三角网插值,所以比较准确,所以这种情况你就不要用v4方法 ...

谢谢您的回复! 我觉得您说的很有道理。。但是怎么加数据得再琢磨一下。。
回复此楼 已获打赏: 0 积分

举报

新手

35 麦片

财富积分


050


1

主题

4

帖子

0

最佳答案
发表于 2020-7-22 16:14:03 | 显示全部楼层
哇 终于可以了
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

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