# unique

extract unique components of a vector or matrices

## Calling Sequence

                [N [,k]]=unique(M)
                [N [,k]]=unique(M ,orient)

## Arguments

M

  vector or matrix of numbers or strings

orient

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

N

  vector or matrix of numbers or strings

k

  vector of integers

## Description

`unique(M)` returns a vector which retains the unique entries of `M` in ascending order.

`unique(M,"r")` or `unique(M,1)`returns the unique rows of `M` in lexicographic ascending order.

`unique(M,"c")` or `unique(M,2)`returns the unique columns of `M` in lexicographic ascending order.

If required the output argument `k` contains the position of the first encountered unique entries.

## Examples

    M=round(2*rand(20,1));

    unique(M)
    [N,k]=unique(M)

    unique(string(M))
    [N,k]=unique(string(M))

    A = [0,0,1,1;
         0,1,1,1;
         2,0,1,1;
         0,2,2,2;
         2,0,1,1;
         0,0,1,1];
    T='x'+string(A);

    //unique rows

    [m,k]=unique(A,'r')
    unique(T,'r')

    //unique columns
    [m,k]=unique(T,'c')
    unique(A,'c')

## See Also

- members
- union
- intersect
- gsort
- lex_sort