MATLAB解决二维数组(矩阵)中插值NaN的情况

对于一般的情况,考虑用interp2函数可以解决,例如从33矩阵插值到nn的矩阵,但是对于矩阵中存在很多的NaN,此方法就不适用了,找了很久,从MATLAB官方回答中找到了解决办法
关键函数:inpaint_nans
注意事项:得先从网络上下载inpaint_nans函数
以下列为例
在这里插入图片描述
可以看到此9*9的B_colum矩阵中存在很多的NaN
解决方法

%% 线性插值处理数据
B_colum=inpaint_nans(B_colum);

可以得到一下结果
在这里插入图片描述
如果画图想要四个角空缺,则插入NaN

B_colum(1,1)=NaN;B_colum(1,9)=NaN;
B_colum(9,1)=NaN;B_colum(9,9)=NaN;

可得到
在这里插入图片描述
拓展:关于inpaint_nans还有以下用法

inpaint_nans(A,method)
inpaint_nans_bc(A,method,bc类)
inpaint_nans_demo.m
Inpaint_nans/演示/
inpaint_nans_demo_old.m
Inpaint_nans/文档/
methods_of_inpaint_nans.m
Inpaint_nans/测试/
test_main.m
methods {0,1,2} use a simple plate metaphor.
% method 3 uses a better plate equation, but may be much slower and uses more memory.
% method 4 uses a spring metaphor.
% method 5 is an 8 neighbor average, with no rationale behind it compared to the

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值