How to remove NaNs from a structure
19 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi,
I have a structure that has eighteen variables (columns) and 594 participants (rows) (18 x 594), the first two variables are strings, the next sixteen are doubles.
My goal is to identify the NaNs and then remove the whole row.
This is what I have from when I did work with a matrix:
countNans = sum(isnan((DATA),2); %Counts missing values (nans) per row over the 2nd dimension
idClean = find(countNans==0); %Only keep rows of participants with all data
cleanData = cleanData(idClean,:);
However, this method is no longer working, with MATLAB saying that isnan does not work for structures.
Thanks!
Réponses (1)
Abhishek Kumar
le 8 Juil 2019
Modifié(e) : madhan ravi
le 8 Juil 2019
A workaround for this would be converting the struct to matrix and then get rid of the NaNs and if you need it again convert it to struct.
cell2mat(struct2cell(YourStructure)) % this will convert your structure to matrix
cell2struct(cellArray, fields, dim) % this will convert it again to struct
0 commentaires
Voir également
Catégories
En savoir plus sur Structures 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!