isnan to conver nan to zero in a table
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi All,
Apologies for what might be a silly question but I am stuck at the moment.
I have used readtable to input a text formatted CSV file.
T=readtable(zz,'Delimiter', '\t');
This gives a 39x501 table.
The table has NaN values which I need to replace with zeros. Based on anoher answer, I am trying:
T(isnan(T)) = 0;
but get the error
Incorrect number or types of inputs or outputs for function isnan.
Help :-)
Darren
0 commentaires
Réponse acceptée
Steven Lord
le 10 Fév 2025
Let's make a sample table with some NaN values and a non-numeric variable.
A = magic(4);
A(randperm(numel(A), 3)) = NaN;
T = array2table(A);
T.A5 = ["apple"; "banana"; "cherry"; "durian"]
You can use the fillmissing function to replace the NaN values in the numeric variables with the constant 0.
T2 = fillmissing(T, 'constant', 0, 'DataVariables', @isnumeric)
If all the variables are numeric you can omit the 'DataVariables' name-value argument.
Plus de réponses (1)
Fangjun Jiang
le 10 Fév 2025
T is an object of the class "table". You can't apply isnan() on it directly. Try the 'TreatAsMissing' option of the readtable() function to avoid NaN first hand.
1 commentaire
Walter Roberson
le 10 Fév 2025
TreatAsMissing gives additional data patterns that are to have NaN (or appropriate missing indicator) substituted. TreatAsMissing does not give any opportunity to substitute a constant value for missing data.
Voir également
Catégories
En savoir plus sur Data Type Identification dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!