2010-10-21 6 views
0

J'ai des problèmes de manipulation d'une matrice. Toute aide serait très appréciée! Dire que j'ai une matrice:MATLAB voir si quelque chose est inclus dans la matrice

xb = 

      1.00   2.00   3.00   6.00   5.00   9.00 

et une autre matrice:

cb = 

     3000.00  4000.00  4000.00    0    0    0 

est-il un moyen de code quelque chose qui vérifierait si un 1 est dans la matrice XB, et afficher la cellule correspondante en cb (la même colonne que l'on est)?

donc par exemple, puisque 6 est dans la matrice XB ci-dessus, le programme affiche 0. Merci!

Répondre

2

en une ligne:

cb(xb==1) 

xb==1 crée un tableau logique de la même taille que xb, qui est une mesure du xb est égal à 1, et 0 ailleurs. Puisque ce tableau logique est de la même taille que cb, vous pouvez l'utiliser pour l'indexation. L'indexation d'un tableau avec un tableau logique renvoie toutes les valeurs du tableau aux endroits où le tableau logique est 1 (pensez-y comme un masque).

+3

vous pouvez associer à ces questions en ce qui concerne la comparaison à virgule flottante: http://stackoverflow.com/questions/2202641/how-do-i-compare-all-elements-of-two-arrays-in-matlab, http://stackoverflow.com/questions/686439/why-is-24-0000-not-equal-to-24-0000-in-matlab – Amro

+0

cb (abs (XB-1) Doresoom

Questions connexes