[Matlab] Fonction pour 'matrice contient la valeur X?'


Answers

tu peux faire:

A = randi(10, [3 4]);      %# a random matrix
any( A(:)==5 )             %# does A contain 5?

Pour faire ce qui précède de manière vectorisée , utilisez:

any( bsxfun(@eq, A(:), [5 7 11] )

ou comme @ woodchips suggère:

ismember([5 7 11], A)
Question

Y at-il une fonction MATLAB intégrée pour savoir si une matrice contient une certaine valeur? (ala PHP in_array() )




Pour les données à virgule flottante, vous pouvez utiliser la nouvelle fonction ismembertol , qui calcule l'appartenance à un ensemble avec une tolérance spécifiée . Ceci est similaire à la fonction ismemberf trouvée dans l'échange de fichiers, sauf qu'elle est maintenant intégrée à MATLAB. Exemple:

>> pi_estimate = 3.14159;
>> abs(pi_estimate - pi)
ans =
   5.3590e-08
>> tol = 1e-7;
>> ismembertol(pi,pi_estimate,tol)
ans =
     1