How to replace -999 values with NaN in a Matlab table?

36 visualizaciones (últimos 30 días)
Leon
Leon el 13 de Oct. de 2020
Comentada: Leon el 13 de Oct. de 2020
I have a Matlab table T1, with columns like the below:
T1.year
T1.month
T1.day
T1.var1
T1.var2
...
Some of its columns are numerical and some of them are strings. For the numerical columns, there could be some -999 values in some of the columns to indicate NaN values.
Is it possible to replace all of the -999 values with NaN values, without specifying each of the columns?
I wish I could do someting as simple as that?
T1(T1==-999) = NaN
Like I do in a column data.
  2 comentarios
Walter Roberson
Walter Roberson el 13 de Oct. de 2020
Are you reading from a text file? If so then use 'TreatAsMissing', '-999' option when you do the readtable()
Leon
Leon el 13 de Oct. de 2020
Thanks for sharing that useful tip!
Unfortunately, I'm not reading from a text file. It is a carry-over Matlab table value.

Iniciar sesión para comentar.

Respuesta aceptada

Steven Lord
Steven Lord el 13 de Oct. de 2020
Use standardizeMissing.
t = array2table(magic(4));
t{2, 'Var3'} = -999
t2 = standardizeMissing(t, -999)

Más respuestas (1)

Walter Roberson
Walter Roberson el 13 de Oct. de 2020
T1 = convertvars(T1, @isnumeric, @no999);
function x = no999(x)
x(x==-999) = nan;
end

Categorías

Más información sobre String Parsing en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by