how to value nan number in a vector? and how to do the same calc in a 2d matrix?

1 view (last 30 days)
--I have a vactor where some values are NaN.The results are on the following plot(in the red box the nan) :
--I was wondering if there is a way to assume the values so it will be something like this:
---Also how to do the same procedure if some values of 2d matrix is NaN? Thanks in advance.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 2 Oct 2014
Edited: Andrei Bobrov on 2 Oct 2014
Let X your array with NaN's
ii = ~isnan(X);
i0 = reshape(1:numel(X),size(X));
Xout = interp1(i0(ii),X(ii),i0);

More Answers (1)

Iain
Iain on 2 Oct 2014
You've got an x & y vector, so this would remove the NaNs:
nans = isnan(Y) || isnan(X);
Y(nans) = [];
X(nans) = [];
You'll need to interpolate if you want the X & Y for all the values of your original X.

Community Treasure Hunt

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

Start Hunting!