1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356
|
<!DOCTYPE html>
<html>
<!-- Created by GNU Texinfo 7.1.1, https://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Set Operations (GNU Octave (version 10.3.0))</title>
<meta name="description" content="Set Operations (GNU Octave (version 10.3.0))">
<meta name="keywords" content="Set Operations (GNU Octave (version 10.3.0))">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="index.html" rel="start" title="Top">
<link href="Concept-Index.html" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Sets.html" rel="up" title="Sets">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
div.example {margin-left: 3.2em}
span:hover a.copiable-link {visibility: visible}
strong.def-name {font-family: monospace; font-weight: bold; font-size: larger}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">
</head>
<body lang="en">
<div class="section-level-extent" id="Set-Operations">
<div class="nav-panel">
<p>
Up: <a href="Sets.html" accesskey="u" rel="up">Sets</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<h3 class="section" id="Set-Operations-1"><span>27.1 Set Operations<a class="copiable-link" href="#Set-Operations-1"> ¶</a></span></h3>
<p>Octave supports several basic set operations. Octave can compute the union,
intersection, and difference of two sets. Octave also supports the
<em class="emph">Exclusive Or</em> set operation.
</p>
<p>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 class="code">a</code> and
<code class="code">b</code> contains two sets, then
</p>
<div class="example">
<pre class="example-preformatted">union (a, b)
</pre></div>
<p>computes the union of the two sets.
</p>
<p>Finally, determining whether elements belong to a set can be done with the
<code class="code">ismember</code> function. Because sets are ordered this operation is very
efficient and is of order O(log2(n)) which is preferable to the <code class="code">find</code>
function which is of order O(n).
</p>
<a class="anchor" id="XREFintersect"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-intersect"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">intersect</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">b</var>)</code><a class="copiable-link" href="#index-intersect"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-intersect-1"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">intersect</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">b</var>, "rows")</code><a class="copiable-link" href="#index-intersect-1"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-intersect-2"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">intersect</strong> <code class="def-code-arguments">(…, "sorted")</code><a class="copiable-link" href="#index-intersect-2"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-intersect-3"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">intersect</strong> <code class="def-code-arguments">(…, "stable")</code><a class="copiable-link" href="#index-intersect-3"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-intersect-4"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">intersect</strong> <code class="def-code-arguments">(…, "legacy")</code><a class="copiable-link" href="#index-intersect-4"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-intersect-5"><span><code class="def-type">[<var class="var">c</var>, <var class="var">ia</var>, <var class="var">ib</var>] =</code> <strong class="def-name">intersect</strong> <code class="def-code-arguments">(…)</code><a class="copiable-link" href="#index-intersect-5"> ¶</a></span></dt>
<dd>
<p>Return the unique elements common to both <var class="var">a</var> and <var class="var">b</var>.
</p>
<p>If <var class="var">a</var> and <var class="var">b</var> are both row vectors then return a row vector;
Otherwise, return a column vector. The inputs may also be cell arrays of
strings.
</p>
<p>If the optional input <code class="code">"rows"</code> is given then return the common rows of
<var class="var">a</var> and <var class="var">b</var>. The inputs must be 2-D numeric matrices to use this
option.
</p>
<p>The optional argument <code class="code">"sorted"</code>/<code class="code">"stable"</code> controls the order
in which unique values appear in the output. The default is
<code class="code">"sorted"</code> and values in the output are placed in ascending order.
The alternative <code class="code">"stable"</code> preserves the order found in the input.
</p>
<p>If requested, return column index vectors <var class="var">ia</var> and <var class="var">ib</var> such that
<code class="code"><var class="var">c</var> = <var class="var">a</var>(<var class="var">ia</var>)</code> and <code class="code"><var class="var">c</var> = <var class="var">b</var>(<var class="var">ib</var>)</code>.
</p>
<p>Programming Note: The input flag <code class="code">"legacy"</code> changes the algorithm
to be compatible with <small class="sc">MATLAB</small> releases prior to R2012b.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="Sets.html#XREFunique">unique</a>, <a class="ref" href="#XREFunion">union</a>, <a class="ref" href="#XREFsetdiff">setdiff</a>, <a class="ref" href="#XREFsetxor">setxor</a>, <a class="ref" href="#XREFismember">ismember</a>.
</p></dd></dl>
<a class="anchor" id="XREFunion"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-union"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">union</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">b</var>)</code><a class="copiable-link" href="#index-union"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-union-1"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">union</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">b</var>, "rows")</code><a class="copiable-link" href="#index-union-1"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-union-2"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">union</strong> <code class="def-code-arguments">(…, "sorted")</code><a class="copiable-link" href="#index-union-2"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-union-3"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">union</strong> <code class="def-code-arguments">(…, "stable")</code><a class="copiable-link" href="#index-union-3"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-union-4"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">union</strong> <code class="def-code-arguments">(…, "legacy")</code><a class="copiable-link" href="#index-union-4"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-union-5"><span><code class="def-type">[<var class="var">c</var>, <var class="var">ia</var>, <var class="var">ib</var>] =</code> <strong class="def-name">union</strong> <code class="def-code-arguments">(…)</code><a class="copiable-link" href="#index-union-5"> ¶</a></span></dt>
<dd>
<p>Return the unique elements that are in either <var class="var">a</var> or <var class="var">b</var>.
</p>
<p>If <var class="var">a</var> and <var class="var">b</var> are both row vectors then return a row vector;
Otherwise, return a column vector. The inputs may also be cell arrays of
strings.
</p>
<p>If the optional input <code class="code">"rows"</code> is given then return rows that are in
either <var class="var">a</var> or <var class="var">b</var>. The inputs must be 2-D numeric matrices to use
this option.
</p>
<p>The optional argument <code class="code">"sorted"</code>/<code class="code">"stable"</code> controls the order
in which unique values appear in the output. The default is
<code class="code">"sorted"</code> and values in the output are placed in ascending order.
The alternative <code class="code">"stable"</code> preserves the order found in the input.
</p>
<p>The optional outputs <var class="var">ia</var> and <var class="var">ib</var> are column index vectors such
that <code class="code"><var class="var">a</var>(<var class="var">ia</var>)</code> and <code class="code"><var class="var">b</var>(<var class="var">ib</var>)</code> are disjoint sets
whose union is <var class="var">c</var>.
</p>
<p>Programming Note: The input flag <code class="code">"legacy"</code> changes the algorithm
to be compatible with <small class="sc">MATLAB</small> releases prior to R2012b.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="Sets.html#XREFunique">unique</a>, <a class="ref" href="#XREFintersect">intersect</a>, <a class="ref" href="#XREFsetdiff">setdiff</a>, <a class="ref" href="#XREFsetxor">setxor</a>, <a class="ref" href="#XREFismember">ismember</a>.
</p></dd></dl>
<a class="anchor" id="XREFsetdiff"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-setdiff"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setdiff</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">b</var>)</code><a class="copiable-link" href="#index-setdiff"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setdiff-1"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setdiff</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">b</var>, "rows")</code><a class="copiable-link" href="#index-setdiff-1"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setdiff-2"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setdiff</strong> <code class="def-code-arguments">(…, "sorted")</code><a class="copiable-link" href="#index-setdiff-2"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setdiff-3"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setdiff</strong> <code class="def-code-arguments">(…, "stable")</code><a class="copiable-link" href="#index-setdiff-3"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setdiff-4"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setdiff</strong> <code class="def-code-arguments">(…, "legacy")</code><a class="copiable-link" href="#index-setdiff-4"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setdiff-5"><span><code class="def-type">[<var class="var">c</var>, <var class="var">ia</var>] =</code> <strong class="def-name">setdiff</strong> <code class="def-code-arguments">(…)</code><a class="copiable-link" href="#index-setdiff-5"> ¶</a></span></dt>
<dd><p>Return the unique elements in <var class="var">a</var> that are not in <var class="var">b</var>.
</p>
<p>If <var class="var">a</var> is a row vector return a row vector; Otherwise, return a
column vector. The inputs may also be cell arrays of strings.
</p>
<p>If the optional input <code class="code">"rows"</code> is given then return the rows in
<var class="var">a</var> that are not in <var class="var">b</var>. The inputs must be 2-D numeric matrices to
use this option.
</p>
<p>The optional argument <code class="code">"sorted"</code>/<code class="code">"stable"</code> controls the order
in which unique values appear in the output. The default is
<code class="code">"sorted"</code> and values in the output are placed in ascending order.
The alternative <code class="code">"stable"</code> preserves the order found in the input.
</p>
<p>If requested, return the index vector <var class="var">ia</var> such that
<code class="code"><var class="var">c</var> = <var class="var">a</var>(<var class="var">ia</var>)</code>.
</p>
<p>Programming Note: The input flag <code class="code">"legacy"</code> changes the algorithm
to be compatible with <small class="sc">MATLAB</small> releases prior to R2012b.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="Sets.html#XREFunique">unique</a>, <a class="ref" href="#XREFunion">union</a>, <a class="ref" href="#XREFintersect">intersect</a>, <a class="ref" href="#XREFsetxor">setxor</a>, <a class="ref" href="#XREFismember">ismember</a>.
</p></dd></dl>
<a class="anchor" id="XREFsetxor"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-setxor"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setxor</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">b</var>)</code><a class="copiable-link" href="#index-setxor"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setxor-1"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setxor</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">b</var>, "rows")</code><a class="copiable-link" href="#index-setxor-1"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setxor-2"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setxor</strong> <code class="def-code-arguments">(…, "sorted")</code><a class="copiable-link" href="#index-setxor-2"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setxor-3"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setxor</strong> <code class="def-code-arguments">(…, "stable")</code><a class="copiable-link" href="#index-setxor-3"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setxor-4"><span><code class="def-type"><var class="var">c</var> =</code> <strong class="def-name">setxor</strong> <code class="def-code-arguments">(…, "legacy")</code><a class="copiable-link" href="#index-setxor-4"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-setxor-5"><span><code class="def-type">[<var class="var">c</var>, <var class="var">ia</var>, <var class="var">ib</var>] =</code> <strong class="def-name">setxor</strong> <code class="def-code-arguments">(…)</code><a class="copiable-link" href="#index-setxor-5"> ¶</a></span></dt>
<dd>
<p>Return the unique elements exclusive to sets <var class="var">a</var> or <var class="var">b</var>.
</p>
<p>If <var class="var">a</var> and <var class="var">b</var> are both row vectors then return a row vector;
Otherwise, return a column vector. The inputs may also be cell arrays of
strings.
</p>
<p>If the optional input <code class="code">"rows"</code> is given then return the rows exclusive
to sets <var class="var">a</var> and <var class="var">b</var>. The inputs must be 2-D numeric matrices to use
this option.
</p>
<p>The optional argument <code class="code">"sorted"</code>/<code class="code">"stable"</code> controls the order
in which unique values appear in the output. The default is
<code class="code">"sorted"</code> and values in the output are placed in ascending order.
The alternative <code class="code">"stable"</code> preserves the order found in the input.
</p>
<p>The optional outputs <var class="var">ia</var> and <var class="var">ib</var> are column index vectors such
that <code class="code"><var class="var">a</var>(<var class="var">ia</var>)</code> and <code class="code"><var class="var">b</var>(<var class="var">ib</var>)</code> are disjoint sets
whose union is <var class="var">c</var>.
</p>
<p>Programming Note: The input flag <code class="code">"legacy"</code> changes the algorithm
to be compatible with <small class="sc">MATLAB</small> releases prior to R2012b.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="Sets.html#XREFunique">unique</a>, <a class="ref" href="#XREFunion">union</a>, <a class="ref" href="#XREFintersect">intersect</a>, <a class="ref" href="#XREFsetdiff">setdiff</a>, <a class="ref" href="#XREFismember">ismember</a>.
</p></dd></dl>
<a class="anchor" id="XREFismember"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-ismember"><span><code class="def-type"><var class="var">tf</var> =</code> <strong class="def-name">ismember</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">s</var>)</code><a class="copiable-link" href="#index-ismember"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-ismember-1"><span><code class="def-type"><var class="var">tf</var> =</code> <strong class="def-name">ismember</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">s</var>, "rows")</code><a class="copiable-link" href="#index-ismember-1"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-ismember-2"><span><code class="def-type">[<var class="var">tf</var>, <var class="var">s_idx</var>] =</code> <strong class="def-name">ismember</strong> <code class="def-code-arguments">(…)</code><a class="copiable-link" href="#index-ismember-2"> ¶</a></span></dt>
<dd>
<p>Return a logical matrix <var class="var">tf</var> with the same shape as <var class="var">a</var> which is
true (1) if the element in <var class="var">a</var> is found in <var class="var">s</var> and false (0) if it
is not.
</p>
<p>If a second output argument is requested then the index into <var class="var">s</var> of each
matching element is also returned.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">a = [3, 10, 1];
s = [0:9];
[tf, s_idx] = ismember (a, s)
⇒ tf = [1, 0, 1]
⇒ s_idx = [4, 0, 2]
</pre></div></div>
<p>The inputs <var class="var">a</var> and <var class="var">s</var> may also be cell arrays.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">a = {"abc"};
s = {"abc", "def"};
[tf, s_idx] = ismember (a, s)
⇒ tf = 1
⇒ s_idx = 1
</pre></div></div>
<p>If the optional third argument <code class="code">"rows"</code> is given then compare rows
in <var class="var">a</var> with rows in <var class="var">s</var>. The inputs must be 2-D matrices with the
same number of columns to use this option.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">a = [1:3; 5:7; 4:6];
s = [0:2; 1:3; 2:4; 3:5; 4:6];
[tf, s_idx] = ismember (a, s, "rows")
⇒ tf = logical ([1; 0; 1])
⇒ s_idx = [2; 0; 5];
</pre></div></div>
<p><strong class="strong">See also:</strong> <a class="ref" href="Finding-Elements-and-Checking-Conditions.html#XREFlookup">lookup</a>, <a class="ref" href="Sets.html#XREFunique">unique</a>, <a class="ref" href="#XREFunion">union</a>, <a class="ref" href="#XREFintersect">intersect</a>, <a class="ref" href="#XREFsetdiff">setdiff</a>, <a class="ref" href="#XREFsetxor">setxor</a>, <a class="ref" href="#XREFismembertol">ismembertol</a>.
</p></dd></dl>
<a class="anchor" id="XREFismembertol"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-ismembertol"><span><code class="def-type"><var class="var">tf</var> =</code> <strong class="def-name">ismembertol</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">s</var>)</code><a class="copiable-link" href="#index-ismembertol"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-ismembertol-1"><span><code class="def-type"><var class="var">tf</var> =</code> <strong class="def-name">ismembertol</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">s</var>, <var class="var">tol</var>)</code><a class="copiable-link" href="#index-ismembertol-1"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-ismembertol-2"><span><code class="def-type"><var class="var">tf</var> =</code> <strong class="def-name">ismembertol</strong> <code class="def-code-arguments">(<var class="var">a</var>, <var class="var">s</var>, <var class="var">name</var>, <var class="var">value</var>)</code><a class="copiable-link" href="#index-ismembertol-2"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-ismembertol-3"><span><code class="def-type">[<var class="var">tf</var>, <var class="var">s_idx</var>] =</code> <strong class="def-name">ismembertol</strong> <code class="def-code-arguments">(…)</code><a class="copiable-link" href="#index-ismembertol-3"> ¶</a></span></dt>
<dd><p>Check if values are members of a set within a tolerance.
</p>
<p>This functions returns a logical matrix <var class="var">tf</var> with the same shape as
<var class="var">a</var> which is true (1) where the element in <var class="var">a</var> is close to <var class="var">s</var>
within a tolerance <var class="var">tol</var> and false (0) if it is not. If <var class="var">tol</var> is
not specified, a default tolerance of <code class="code">1e-6</code> is used.
</p>
<p>If a second output argument is requested then the index into <var class="var">s</var> of each
matching element is also returned.
</p>
<p>The inputs <var class="var">a</var> and <var class="var">s</var> must be numeric values.
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">a = [3, 10, 1];
s = [0:9];
[tf, s_idx] = ismembertol (a, s)
⇒ tf = [1, 0, 1]
⇒ s_idx = [4, 0, 2]
</pre></div></div>
<p>Optional property/value pairs may be given to change the function’s
behavior. The property may be one of following strings:
</p>
<dl class="table">
<dt><code class="code">"ByRows"</code></dt>
<dd><p>If set to <code class="code">false</code> (default), all elements in <var class="var">a</var> and <var class="var">s</var> are
treated separately. If set to <code class="code">true</code>, <var class="var">tf</var> will be <code class="code">true</code>
for each row in <var class="var">a</var> that matches a row in <var class="var">s</var> within the given
tolerance. Two rows, <var class="var">u</var> and <var class="var">v</var>, are within tolerance if they
fulfill the condition <code class="code">all (abs (u-v) <= tol*max (abs ([a;s])))</code>.
</p>
</dd>
<dt><code class="code">"OutputAllIndices"</code></dt>
<dd><p>If set to <code class="code">false</code> (default), <var class="var">s_idx</var> contains indices for one
of the matches. If set to <code class="code">true</code>, <var class="var">s_idx</var> is a cell array
containing the indices for all elements in <var class="var">s</var> that are within tolerance
of the corresponding value in <var class="var">a</var>.
</p>
</dd>
<dt><code class="code">"DataScale"</code></dt>
<dd><p>The provided value <var class="var">DS</var> is used to change the scale factor in the
tolerance test to <code class="code">abs (u-v) <= tol*<var class="var">DS</var></code>. By default, the maximum
absolute value in <var class="var">a</var> and <var class="var">s</var> is used as the scale factor.
</p></dd>
</dl>
<p>Example:
</p>
<div class="example">
<div class="group"><pre class="example-preformatted">s = [1:6].' * pi;
a = 10.^log10 (x);
[tf, s_idx] = ismembertol (a, s);
</pre></div></div>
<p><strong class="strong">See also:</strong> <a class="ref" href="#XREFismember">ismember</a>, <a class="ref" href="Finding-Elements-and-Checking-Conditions.html#XREFlookup">lookup</a>, <a class="ref" href="Sets.html#XREFunique">unique</a>, <a class="ref" href="#XREFunion">union</a>, <a class="ref" href="#XREFintersect">intersect</a>, <a class="ref" href="#XREFsetdiff">setdiff</a>, <a class="ref" href="#XREFsetxor">setxor</a>.
</p></dd></dl>
<a class="anchor" id="XREFpowerset"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-powerset"><span><code class="def-type"><var class="var">p</var> =</code> <strong class="def-name">powerset</strong> <code class="def-code-arguments">(<var class="var">a</var>)</code><a class="copiable-link" href="#index-powerset"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-powerset-1"><span><code class="def-type"><var class="var">p</var> =</code> <strong class="def-name">powerset</strong> <code class="def-code-arguments">(<var class="var">a</var>, "rows")</code><a class="copiable-link" href="#index-powerset-1"> ¶</a></span></dt>
<dd><p>Compute the powerset (all subsets) of the set <var class="var">a</var>.
</p>
<p>The set <var class="var">a</var> must be a numerical matrix or a cell array of strings. The
output will always be a cell array of either vectors or strings.
</p>
<p>With the optional argument <code class="code">"rows"</code>, each row of the set <var class="var">a</var> is
considered one element of the set. The input must be a 2-D numeric matrix
to use this argument.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="Sets.html#XREFunique">unique</a>, <a class="ref" href="#XREFunion">union</a>, <a class="ref" href="#XREFintersect">intersect</a>, <a class="ref" href="#XREFsetdiff">setdiff</a>, <a class="ref" href="#XREFsetxor">setxor</a>, <a class="ref" href="#XREFismember">ismember</a>.
</p></dd></dl>
</div>
<hr>
<div class="nav-panel">
<p>
Up: <a href="Sets.html">Sets</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|