Please note that the recommended version of Scilab is 2024.1.0. This page might be outdated.

See the recommended documentation of this function

# intersect

returns the vector of common values of two vectors

### Calling Sequence

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

### Arguments

- a
vector of numbers or strings

- b
vector of numbers or strings

- orient
flag with possible values : 1 or "r", 2 or "c"

- v
row vector of numbers or strings

- ka
row vector of integers

- kb
row vector of integers

### Description

`intersect(a,b)`

returns a sorted row vector of
common values of two vectors of `a`

and
`b`

.

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

also returns index
vectors `ka`

and `kb`

such that
`v=a(ka)`

and `v=b(kb)`

.

`intersect(a,b,"r")`

or
`intersect(a,b,1)`

returns the matrix formed by the
intersection of the unique rows of `a`

and
`b`

sorted in lexicographic ascending order. In this case
matrices `a`

and `b`

must have the same
number of columns.

`[v,ka,kb]=intersect(a,b,"r")`

also returns index
vectors `ka`

and `kb`

such that
`v=a(ka,:)`

and `v=b(kb,:)`

.

`intersect(a,b,"c")`

or
`intersect(a,b,2)`

returns the matrix formed by the
intersection of the unique columns of `a`

and
`b`

sorted in lexicographic ascending order. In this case
matrices `a`

and `b`

must have the same
number of rows.

`[v,ka,kb]=intersect(a,b,"c")`

also returns index
vectors `ka`

and `kb`

such that
`v=a(:,ka)`

and `v=b(:,kb)`

.

### Remark

NaN are considered as different from themselves so they are excluded out of intersection in case of vector intersection.

### Examples

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)

### See Also

<< Set operations | Set operations | setdiff >> |