# intersect

2つのベクトルで共通の値のベクトルを返す

## 呼び出し手順

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

## パラメータ

a

  数値または文字列のベクトル

b

  数値または文字列のベクトル

orient

  flag で, 次の値を指定可能 : 1 または "r", 2 または "c"

v

  数値または文字列の行ベクトル

ka

  整数の行ベクトル

kb

  整数の行ベクトル

## 説明

`intersect(a,b)` は2つのベクトル `a` および `b`で共通な値をソートした行ベクトルを返します.

`[v,ka,kb]=intersect(a,b)` は `v=a(ka)` および `v=b(kb)`となるような 添字ベクトル`ka` および `kb`も返します.

`intersect(a,b,"r")` または `intersect(a,b,1)`は,辞書式で昇順にソートされた `a` および `b` のユニークな行の 共通な値からなる行列を返します.この場合, 行列 `a` および `b` の列の数は 同じである必要があります.

`[v,ka,kb]=intersect(a,b,"r")` は `v=a(ka,:)` および `v=b(kb,:)`となるような 添字ベクトル`ka` および `kb`も返します.

`intersect(a,b,"c")` または `intersect(a,b,2)` は,辞書式で昇順にソートされた `a` および `b` のユニークな列の 共通な値からなる行列を返します.この場合, 行列 `a` および `b` の行の数は 同じである必要があります.

`[v,ka,kb]=intersect(a,b,"c")` は `v=a(:,ka)` および `v=b(:,kb)`となるような 添字ベクトル`ka` および `kb`も返します.

## 注意

NaN は処理対象ではないとみなされ,ベクトルの共通項の場合, 共通要素から除外されます.

## 例

    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))

    //行列の場合
     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)

## 参照

- unique
- gsort
- union