Fill missing NaN values with Interpolation
149 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
ZaidiN
el 12 de Jul. de 2018
Comentada: Tsehaye Gebreteklie
el 19 de Abr. de 2022
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 comentarios
Tsehaye Gebreteklie
el 19 de Abr. de 2022
knnimpute is prefere than spline. you can write the code like this.
clear all;
clc;
Temp = xlsread(A);
Filldata=knnimpute(Temp);
Respuesta aceptada
KSSV
el 12 de Jul. de 2018
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 comentario
EMMA POLLARD
el 23 de Feb. de 2021
@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
Más respuestas (1)
ZaidiN
el 12 de Jul. de 2018
1 comentario
Pawan Sharma
el 12 de Mayo de 2020
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.
Ver también
Categorías
Más información sobre Interpolation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!