11
votes

Trouver tous les éléments NAN à l'intérieur d'un tableau

Y a-t-il une commande à Matlab qui me permet de trouver tous les éléments nan (nombre de numéros) à l'intérieur d'un tableau?


0 commentaires

3 Réponses :


10
votes

Je viens de trouver la réponse:

k=find(isnan(yourarray))


2 commentaires

Dans MATLAB, vous n'avez souvent pas besoin d'appeler Rechercher () sur une matrice logique car les matrices logiques peuvent être utilisées directement au lieu d'indices pour la plupart des opérations supplémentaires, voir par exemple blogs.mathworks.com/loren/2006/08/09/SESSENCE-OF-Intexing


Il y a des moments où vous avez juste besoin de la matrice logique et qu'il y a des moments où vous avez besoin des indices. Je suis d'accord de ne pas faire des opérations inutiles, mais l'OP n'a pas précisé qu'il voulait dire qu'il voulait. Cette réponse est correcte.



23
votes

Pendant que ISNAN est la solution correcte, je vais simplement souligner le chemin pour l'avoir trouvé. Utilisez LookPour. Lorsque vous ne connaissez pas le nom d'une fonction dans Matlab, essayez de regarder pour.

lookfor nan


0 commentaires

24
votes

Comme indiqué, la meilleure réponse est Isnan () (bien que +1 pour la méta-réponse de Woodchips). Un exemple plus complet de la façon de l'utiliser avec une indexation logique: xxx

isnan (a) renvoie un tableau logique, une matrice de true et false de la même taille que A, avec "vrai" chaque Place il y a une Nan, qui peut être utilisée pour Index dans un.


1 commentaires

J'ai accepté votre réponse parce que vous m'avez montré comment remplacer la NAN avec 0 valeur, ce qui est inestimable à mon objectif.