Y = INPAINTN(X) replaces the missing data in X by extra/interpolating the non-missing elements. The non finite values (NaN or Inf) in X are considered as missing data. X can be any N-D array.
Type "help inpaintn" in the Matlab command windows for several examples.
INPAINTN (no input/output argument) runs a 3-D example.
Important note:
----------------
INPAINTN uses an iterative process that converges toward the solution. Y = INPAINTN(X,N) uses N iterations. By default, N = 100. If you estimate that INPAINTN did not totally converge, then increase N: Y = INPAINTN(X,1000);
-----
When using this algorithm, please refer to these 2 papers:
1) Garcia D. Robust smoothing of gridded data in one and higher dimensions with missing values.
Comput Statist Data Anal, 2010;54:1167-1178
http://www.biomecardio.com/pageshtm/publi/csda10.pdf
2) Wang G, Garcia D et al. A three- dimensional gap filling method for large geophysical datasets: Application to global satellite soil moisture observations.
Environ Modell Softw, 2012;30:139-142.
http://www.biomecardio.com/pageshtm/publi/envirmodellsoftw12.pdf.pdf
-----
Example:
--------
%% ---- 2-D data ---- %%
n = 256;
y0 = peaks(n);
y = y0;
I = randperm(n^2);
y(I(1:n^2*0.5)) = NaN; % lose 1/2 of data
y(40:90,140:190) = NaN; % create a hole
z = inpaintn(y,200); % inpaint data
subplot(2,2,1:2), imagesc(y), axis equal off
title('Corrupt data')
subplot(223), imagesc(z), axis equal off
title('Recovered data ...')
subplot(224), imagesc(y0), axis equal off
title('... compared with original data')
------
http://www.biomecardio.com
----- |