%% Interpolate Missing Data
% Use interpolation to replace NaN values in non-uniformly sampled data.
% Define a vector of non-uniform sample points and evaluate the sine function over the points.

x = [-4*pi:0.1:0, 0.1:0.2:4*pi];
A = sin(x);

%
% Inject NaN values into A.

A(A < 0.75 & A > 0.5) = NaN;

%
% Fill the missing data using linear interpolation, and return the filled vector F and the logical vector TF. The value 1 (true) in entries of TF corresponds to the values of F that were filled.

[F,TF] = fillmissing(A,'linear','SamplePoints',x);

%
% Plot the original data and filled data.

plot(x,A,'.', x(TF),F(TF),'o')
xlabel('x');
ylabel('sin(x)')
legend('Original Data','Filled Missing Data')

% Copyright 2012 The MathWorks, Inc.