How to value value NaN in a 2d matrix?

2 views (last 30 days)
I have a 2d matrix with some NaN. how to value them? I give some figure to be more understandable:
It can be seen that there 2-3 values equal to NaN. I was wondering how to interpolate them with the rest values.Thanks in advance.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 2 Oct 2014
please use scatteredInterpolant, example:
a = randi([6 10],30,20);
a(randperm(numel(a),20)) = nan; % a - your 2d array with nan's
[r,c] = ndgrid(1:size(a,1),1:size(a,2));
l0 = ~isnan(a);
F = scatteredInterpolant(r(l0),c(l0),a(l0))
surf(a)
a2 = F(r,c);
figure,surf(a2)

More Answers (1)

dpb
dpb on 2 Oct 2014

Community Treasure Hunt

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

Start Hunting!