# intersect

recherche de valeurs communes à deux vecteurs.

## Séquence d'appel

                [v [,ka,kb]]=intersect(a,b)
                [v [,ka,kb]]=intersect(a,b,orient)

## Paramètres

a

  vecteur de nombres ou de chaînes de caractères

b

  vecteur de nombres ou de chaînes de caractères

v

  vecteur ligne ou matrice de nombres ou de chaînes de caractères

ka

  vecteur ligne d'entiers

kb

  vecteur ligne d'entiers

## Description

`intersect(a,b)` renvoie un vecteur trié des valeurs communes à `a` et `b`. A noter que 2 NaN sont toujours considérés comme différents.

`[v,ka,kb]=intersect(a,b)` renvoie aussi deux vecteurs d'indices `ka` et `kb` tels que `v=a(ka)` et `v=b(kb)`.

`intersect(a,b,"r")` ou `intersect(a,b,1)` retourne la matrice formée de l'intersection des lignes distinctes des matrices `a` et `b` triées dans l'ordre lexicographique croissant. Dans ce cas les matrices `a` et `b` doivent avoir le même nombre de colonnes.

`[v,ka,kb]=intersect(a,b,"r")` retourne aussi les vecteurs d'indices `ka` et `kb` tels que `v=a(ka,:)` et `v=b(kb,:)`.

`intersect(a,b,"c")` ou `intersect(a,b,2)` retourne la matrice formée de l'intersection des colonnes distinctes des matrices `a` et `b` triées dans l'ordre lexicographique croissant. Dans ce cas les matrices `a` et `b` doivent avoir le même nombre de lignes.

`[v,ka,kb]=intersect(a,b,"r")` retourne aussi les vecteurs d'indices `ka` et `kb` tels que `v=a(:,ka)` et `v=b(:,kb)`.

## Exemples

    A=round(5*rand(10,1));
    B=round(5*rand(7,1));

    intersect(A,B)
    [N,ka,kb]=intersect(A,B)

    intersect('a'+string(A),'a'+string(B))

    intersect(int16(A),int16(B))

    //with matrices
     A = [0,0,1,1 1;
          0,1,1,1,1;
          2,0,1,1,1;
          0,2,2,2,2;
          2,0,1,1,1;
          0,0,1,1,%nan];
    B = [1,0,1;
         1,0,2;
         1,2,3;
         2,0,4;
         1,2,5;
         %nan,0,6];

    [v,ka,kb] = intersect(A,B,'c')
    A(:,ka)

## Voir aussi

- members
- unique
- gsort
- union