number how ejemplo derive complex arrays matlab datetime numbers complex-numbers

arrays - how - ¿Cómo evitar el uso múltiple de ''isnan'' para filtrar datasets inconscientes?



numerical derivative matlab (2)

Tengo dos conjuntos de datos correspondientes (tiene una relación y tiene la misma dimensión):

  1. Time
  2. Salinity

Algunos datos en el conjunto de datos de salinidad son NaN.

Puedo eliminar el valor de NaN por:

Salinity_new=Salinity(~isnan(Salinity))

Pero ya no se corresponderá con el conjunto de datos Time .

¿Cómo puedo eliminar el tiempo correspondiente también?

Gracias


Los comentarios de Diavakar y patrik son correctos. Para resumir y obtener respuesta a esta pregunta, algunos comentarios adicionales.

mask = isfinite(Salinity) [Time,Salinity] = deal( Time(mask), Salinity(mask) )

isfinite es lo mismo que ~isnan , pero con un paso de cálculo menos, es aproximadamente 50-90% más rápido. Al introducir una mask , estás evitando el doble uso de isfinite . deal solo te ahorra algo de espacio.


Otra solución es la siguiente:

indexes = find(isnan(Salinity)==1); Salinity(indexes) = []; Time(indexes) = []

De esta forma, eliminas el valor no numérico de tus vectores.