Next: Polynomial Manipulations, Previous: Statistics, Up: Top [Contents][Index]

Octave has a number of functions for managing sets of data. A set is defined
as a collection of unique elements and is typically represented by a vector of
numbers sorted in ascending order. Any vector or matrix can be converted to a
set by removing duplicates through the use of the `unique`

function.
However, it isn’t necessary to explicitly create a set as all of the functions
which operate on sets will convert their input to a set before proceeding.

- :
**unique***(*`x`) - :
**unique***(*`x`, "rows") - :
**unique***(…, "sorted")* - :
**unique***(…, "stable")* - :
*[*`y`,`i`,`j`] =**unique***(…)* - :
*[*`y`,`i`,`j`] =**unique***(…, "first")* - :
*[*`y`,`i`,`j`] =**unique***(…, "last")* - :
*[*`y`,`i`,`j`] =**unique***(…, "legacy")* Return the unique elements of

`x`.If the input

`x`is a column vector then return a column vector; Otherwise, return a row vector.`x`may also be a cell array of strings.If the optional argument

`"rows"`

is given then return the unique rows of`x`. The input must be a 2-D numeric matrix to use this option.The optional argument

`"sorted"`

/`"stable"`

controls the order in which unique values appear in the output. The default is`"sorted"`

and values in the output are placed in ascending order. The alternative`"stable"`

preserves the order found in the input`x`.If requested, return column index vectors

`i`and`j`such that

and`y`=`x`(`i`)

.`x`=`y`(`j`)Additionally, if

`i`is a requested output then one of the flags`"first"`

or`"last"`

may be given. If`"last"`

is specified, return the highest possible indices in`i`, otherwise, if`"first"`

is specified, return the lowest. The default is`"first"`

.Example 1 : sort order

unique ([3, 1, 1, 2]) ⇒ [1, 2, 3] unique ([3, 1, 1, 2], "stable") ⇒ [3, 1, 2]

Example 2 : index selection

[~,

`i`] = unique ([3, 1, 1, 2], "first") ⇒`i`= [2; 4; 1] [~,`i`] = unique ([3, 1, 1, 2], "last") ⇒`i`= [3; 4; 1]Programming Notes: The input flag

`"legacy"`

changes the algorithm to be compatible with MATLAB releases prior to R2012b. Specifically, The index ordering flag is changed to`"last"`

, and the shape of the outputs`i`,`j`will follow the shape of the input`x`rather than always being column vectors.The third output,

`j`, has not been implemented yet when the sort order is`"stable"`

.

• Set Operations |

Next: Polynomial Manipulations, Previous: Statistics, Up: Top [Contents][Index]