Borrar filtros
Borrar filtros

Fill missing NaN values with Interpolation

149 visualizaciones (últimos 30 días)
ZaidiN
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
Adam
Adam el 12 de Jul. de 2018
doc spline
doc interp1
Tsehaye Gebreteklie
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);

Iniciar sesión para comentar.

Respuesta aceptada

KSSV
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
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

Iniciar sesión para comentar.

Más respuestas (1)

ZaidiN
ZaidiN el 12 de Jul. de 2018
Is this spline interpolation? Secondly this doesnt fill the locations of NaN with interpolated points.
  1 comentario
Pawan Sharma
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.

Iniciar sesión para comentar.

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!

Translated by