Fill missing NaN values with Interpolation
조회 수: 95 (최근 30일)
이전 댓글 표시
I have Matlab 2013, and I want to apply spline interpolation in my data matrix with NaN values. Is there any other method which can do this. As fillmissing functon is not available in lower versions.
댓글 수: 2
Tsehaye Gebreteklie
2022년 4월 19일
knnimpute is prefere than spline. you can write the code like this.
clear all;
clc;
Temp = xlsread(A);
Filldata=knnimpute(Temp);
채택된 답변
KSSV
2018년 7월 12일
a = rand(100,1) ;
% put some NaN's
a(randsample(100,20)) = NaN ;
%%interpolate
x = 1:length(a) ;
a(isnan(a)) = interp1(x(~isnan(a)),a(~isnan(a)),x(isnan(a))) ;
plot(x,a,'.r')
hold on
plot(x,a,'b')
댓글 수: 1
EMMA POLLARD
2021년 2월 23일
@KSSV Is there a way to use the above method but omit larger gaps of data? For example if there is a string longer than 5NaN values could it avoid interpolating these sections?
Thanks
추가 답변 (1개)
ZaidiN
2018년 7월 12일
댓글 수: 1
Pawan Sharma
2020년 5월 12일
This is liner interpolation. To make it spline interpolation, add spine as a method of interpolation
a(isnan(a)) = interp1(x(~isnan(a)),a(~isnan(a)),x(isnan(a)), 'spline') ;
It do replace NaNs with interpolated values.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!