2011-03-29 5 views
9

Je cherche un moyen de retourner l'indice de l'endroit où une ligne particulière réside dans la matrice. Je peux garantir que chaque ligne est unique, ainsi que la ligne qui existe toujours dans la matrice. Comment puis-je faire cela dans matlab?
Par exemple, supposons que vous avez une matrice c:Comment tester si la ligne est dans la matrice?

c = 

    1 2 3 
    3 2 1 

plus loin, vous avez une matrice b:

b = 

    1 2 3 

Je voudrais une fonction func où je pourrais appeler

func(b,c) 
    1 

ou même simplement retourner:

0 
1 

Répondre

15

Utilisez ISMEMBER. Si chaque ligne est unique et que tout ce que vous voulez est l'index, vous pouvez l'obtenir comme suit (remplacez ~ par dummy si vous utilisez Matlab avant 2009b).

[~,index] = ismember(b,c,'rows') 
Questions connexes