Interpolate include NaN data.
2 views (last 30 days)
Show older comments
Jeong_evolution
on 14 Nov 2016
Commented: Jeong_evolution
on 18 Nov 2016
Data likes this
-----
3
NaN
NaN
7
NaN
NaN
2
NaN
NaN
19
NaN
NaN
12
-----
How interpolate NaN data?
I try interp1 fuction. But I failed.
Please help me.
1 Comment
Accepted Answer
John D'Errico
on 14 Nov 2016
Edited: John D'Errico
on 14 Nov 2016
Download inpaint_nans from the File Exchange. Although interp1 would also have been able to solve the problem too. inpaint_nans is far simpler to use for this though.
4 Comments
John D'Errico
on 14 Nov 2016
This is easier?
k = find(~isnan(x));
y = interp1(x(k),y(k),1:numel(x));
It is not difficult. But you cannot claim it to be simpler to use interp1 here.
More Answers (1)
Jan
on 14 Nov 2016
data = [3, NaN, NaN, 7, NaN, NaN, 2, NaN, NaN, 19, NaN, NaN, 12];
miss = isnan(data);
data(miss) = interp1(data(~miss), find(~miss), find(miss))
4 Comments
See Also
Categories
Find more on Interpolation of 2-D Selections in 3-D Grids 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!