对于一般的情况,考虑用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