Mercurial > octave
view doc/interpreter/set.txi @ 31214:19bd1953fc1d stable
GitHub-CI: Remove ubuntu-18.04 runners from build matrix.
* .github/workflow/make.yaml (ubuntu): GitHub-hosted runners for ubuntu-18.04
are being deprecated. Remove them from build matrix. See also:
https://github.com/actions/runner-images/issues/6002
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Tue, 30 Aug 2022 11:16:27 +0200 |
parents | 796f54d4ddbf |
children | 597f3ee61a48 |
line wrap: on
line source
@c Copyright (C) 1996-2022 The Octave Project Developers @c @c This file is part of Octave. @c @c Octave is free software: you can redistribute it and/or modify it @c under the terms of the GNU General Public License as published by @c the Free Software Foundation, either version 3 of the License, or @c (at your option) any later version. @c @c Octave is distributed in the hope that it will be useful, but @c WITHOUT ANY WARRANTY; without even the implied warranty of @c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the @c GNU General Public License for more details. @c @c You should have received a copy of the GNU General Public License @c along with Octave; see the file COPYING. If not, see @c <https://www.gnu.org/licenses/>. @node Sets @chapter Sets 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 @code{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. @DOCSTRING(unique) @DOCSTRING(uniquetol) @menu * Set Operations:: @end menu @node Set Operations @section Set Operations Octave supports several basic set operations. Octave can compute the union, intersection, and difference of two sets. Octave also supports the @emph{Exclusive Or} set operation. The functions for set operations all work in the same way by accepting two input sets and returning a third set. As an example, assume that @code{a} and @code{b} contains two sets, then @example union (a, b) @end example @noindent computes the union of the two sets. Finally, determining whether elements belong to a set can be done with the @code{ismember} function. Because sets are ordered this operation is very efficient and is of order O(log2(n)) which is preferable to the @code{find} function which is of order O(n). @DOCSTRING(intersect) @DOCSTRING(union) @DOCSTRING(setdiff) @DOCSTRING(setxor) @DOCSTRING(ismember) @DOCSTRING(powerset)