Tengo una matriz de celdas que contiene una secuencia de valores como un vector de fila. Las secuencias contienen algunos valores faltantes representados por NaN
.MATLAB: Usando la interpolación para reemplazar los valores faltantes (NaN)
Me gustaría reemplazar todos los NaN utilizando algún tipo de método de interpolación, ¿cómo puedo hacer esto en MATLAB? También estoy abierto a otras sugerencias sobre cómo lidiar con estos valores perdidos.
Considere estos datos de muestra para ilustrar el problema:
seq = {randn(1,10); randn(1,7); randn(1,8)};
for i=1:numel(seq)
%# simulate some missing values
ind = rand(size(seq{i})) < 0.2;
seq{i}(ind) = nan;
end
Las secuencias resultantes:
seq{1}
ans =
-0.50782 -0.32058 NaN -3.0292 -0.45701 1.2424 NaN 0.93373 NaN -0.029006
seq{2}
ans =
0.18245 -1.5651 -0.084539 1.6039 0.098348 0.041374 -0.73417
seq{3}
ans =
NaN NaN 0.42639 -0.37281 -0.23645 2.0237 -2.2584 2.2294
Editar:
Sobre la base de las respuestas, creo que ha habido un confusión: obviamente no estoy trabajando con datos aleatorios, el código que se muestra arriba es simplemente un ejemplo de cómo t él los datos están estructurados.
Los datos reales son alguna forma de señales procesadas. El problema es que durante el análisis, mi solución fallaría si las secuencias contienen valores perdidos, de ahí la necesidad de filtrar/interpolar (ya consideré usar la media de cada secuencia para llenar los espacios en blanco, pero espero algo más poderoso)
En su ejemplo, creo que sería difícil encontrar una forma de interpolar los valores perdidos. La interpolación requiere que haya algún tipo de relación entre los puntos de datos. A menudo, esto puede deberse a que provienen de una serie temporal (por lo que una buena suposición es que la parte faltante puede inferirse de los puntos cercanos). En los datos de ejemplo, intentas adivinar un "cambio de moneda" basado únicamente en otros cambios de moneda. Si puede darnos más información sobre su ejemplo específico, podemos ayudarlo más. – JudoWill
@JudoWill: Creo que solo estaba usando datos aleatorios como un ejemplo para las personas con las que jugar. – gnovice