Est-il construit en fonction matlab pour savoir si une matrice contient une valeur?
Merci
Est-il construit en fonction matlab pour savoir si une matrice contient une valeur?
Merci
vous pouvez le faire:
A = randi(10, [3 4]); %# a random matrix
any( A(:)==5 ) %# does A contain 5?
Pour faire le ci-dessus dans un vectorisé , utilisez:
any( bsxfun(@eq, A(:), [5 7 11] )
ou comme @copeaux de bois suggère:
ismember([5 7 11], A)
Si vous avez besoin de vérifier si les éléments d'un vecteur sont dans l'autre, la meilleure solution est - ismember
comme mentionné dans les autres réponses.
ismember([15 17],primes(20))
Toutefois, lorsque vous traitez avec des nombres à virgule flottante, ou simplement pour faire fermer correspond à (+- 1000 est également possible), la meilleure solution que j'ai trouvé est assez efficace d'Échange de Fichier de Soumission: ismemberf
Il donne un exemple très pratique:
[tf, loc]=ismember(0.3, 0:0.1:1) % returns false
[tf, loc]=ismemberf(0.3, 0:0.1:1) % returns true
Bien que la tolérance par défaut devraient normalement être suffisant, il vous donne plus de flexibilité
ismemberf(9.99, 0:10:100) % returns false
ismemberf(9.99, 0:10:100,'tol',0.05) % returns true
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.