Mercurial > octave
view doc/interpreter/set.txi @ 31246:43a6be589387
doc: New documentation for memoization techniques (bug #60860)
vectorize.texi: New section on memoization
octave.texi: List new section
author | Arun Giridhar <arungiridhar@gmail.com> |
---|---|
date | Thu, 29 Sep 2022 20:31:52 -0400 |
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)