Interpolation 9 data. help!

1 view (last 30 days)
Jeong_evolution
Jeong_evolution on 14 Nov 2016
Answered: Gavriel Aminov on 5 Apr 2017
Data is figure.
I want to interpolation "NaN" data.
Please help me.
  1 Comment
Jan
Jan on 14 Nov 2016
Columnwise, rowwise, in 2D, linear, cubic or how else?

Sign in to comment.

Accepted Answer

Gavriel Aminov
Gavriel Aminov on 23 Mar 2017
Please try the next code. The sample matrix M is simulated as random values, not as well-behaving function, therefore the ERROR is big. For smooth 2D function the ERROR should be reasonable. Please examine it.
m=5;
n=10;
M0=round(rand(m,n)*10)
M=M0;
M(M<3)=nan
[J, I]=meshgrid(1:n, 1:m);
all_inds=sub2ind([m,n], I, J);
good_inds=find(~isnan(M(all_inds)));
[I0, J0]=ind2sub([m,n], good_inds);
MM=round(griddata(I0, J0, M(good_inds), I, J, 'linear'))
ERROR=(MM(isnan(M))-M0(isnan(M)))'

More Answers (1)

Gavriel Aminov
Gavriel Aminov on 5 Apr 2017
https://www.mathworks.com/mat Interpolates (& extrapolates) NaN elements in a 2d array. (nan, inpainting, replace) labcentral/fileexchange/4551-inpaint-nans

Categories

Find more on Interpolation in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!