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 Geology 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!