Interpolate include NaN data.

2 次查看(过去 30 天)
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 个评论
Jan
Jan 2016-11-14
Whenever you post "failed" in the forum, add your code and explain the error.

请先登录,再进行评论。

采纳的回答

John D'Errico
John D'Errico 2016-11-14
编辑:John D'Errico 2016-11-14
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 个评论
John D'Errico
John D'Errico 2016-11-14
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.
Jeong_evolution
Jeong_evolution 2016-11-18
I'm sorry. I didn't work hard.
Very easy.. Thanks ^^

请先登录,再进行评论。

更多回答(1 个)

Jan
Jan 2016-11-14
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 个评论
Jeong_evolution
Jeong_evolution 2016-11-18
Mr.Simon. This is real data.
When I try this code used real data, there was an error.
But I don't know mean. You know?
Jeong_evolution
Jeong_evolution 2016-11-18
Code is
------------------------------------------------------------------------------------
AA = xlsread('TMY_original_mssing_2');
data = AA(:,1:3);
miss = isnan(data);
data(miss) = interp1(data(~miss), find(~miss), find(miss));
------------------------------------------------------------------------------------

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Geology 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by