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
|
<!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>Logical Values (GNU Octave (version 10.3.0))</title>
<meta name="description" content="Logical Values (GNU Octave (version 10.3.0))">
<meta name="keywords" content="Logical Values (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="Numeric-Data-Types.html" rel="up" title="Numeric Data Types">
<link href="Automatic-Conversion-of-Data-Types.html" rel="next" title="Automatic Conversion of Data Types">
<link href="Bit-Manipulations.html" rel="prev" title="Bit Manipulations">
<style type="text/css">
<!--
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
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="Logical-Values">
<div class="nav-panel">
<p>
Next: <a href="Automatic-Conversion-of-Data-Types.html" accesskey="n" rel="next">Automatic Conversion of Data Types</a>, Previous: <a href="Bit-Manipulations.html" accesskey="p" rel="prev">Bit Manipulations</a>, Up: <a href="Numeric-Data-Types.html" accesskey="u" rel="up">Numeric Data Types</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="Logical-Values-1"><span>4.6 Logical Values<a class="copiable-link" href="#Logical-Values-1"> ¶</a></span></h3>
<p>Octave has built-in support for logical values, i.e., variables that
are either <code class="code">true</code> or <code class="code">false</code>. When comparing two variables,
the result will be a logical value whose value depends on whether or
not the comparison is true.
</p>
<p>The basic logical operations are <code class="code">&</code>, <code class="code">|</code>, and <code class="code">!</code>,
which correspond to “Logical And”, “Logical Or”, and “Logical
Negation”. These operations all follow the usual rules of logic.
</p>
<p>It is also possible to use logical values as part of standard numerical
calculations. In this case <code class="code">true</code> is converted to <code class="code">1</code>, and
<code class="code">false</code> to 0, both represented using double precision floating
point numbers. So, the result of <code class="code">true*22 - false/6</code> is <code class="code">22</code>.
</p>
<p>Logical values can also be used to index matrices and cell arrays.
When indexing with a logical array the result will be a vector containing
the values corresponding to <code class="code">true</code> parts of the logical array.
See <a class="xref" href="Index-Expressions.html#XREFLogicalIndexing">Logical Indexing</a>.
</p>
<p>Logical values can also be constructed by
casting numeric objects to logical values, or by using the <code class="code">true</code>
or <code class="code">false</code> functions.
</p>
<a class="anchor" id="XREFlogical"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-logical"><span><code class="def-type"><var class="var">TF</var> =</code> <strong class="def-name">logical</strong> <code class="def-code-arguments">(<var class="var">x</var>)</code><a class="copiable-link" href="#index-logical"> ¶</a></span></dt>
<dd><p>Convert the numeric object <var class="var">x</var> to logical type.
</p>
<p>Any nonzero values will be converted to true (1) while zero values will be
converted to false (0). The non-numeric value NaN cannot be converted and will
produce an error.
</p>
<p>Compatibility Note: Octave accepts complex values as input, whereas <small class="sc">MATLAB</small>
issues an error.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="Numeric-Data-Types.html#XREFdouble">double</a>, <a class="ref" href="Single-Precision-Data-Types.html#XREFsingle">single</a>, <a class="ref" href="Concatenating-Strings.html#XREFchar">char</a>.
</p></dd></dl>
<a class="anchor" id="XREFtrue"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-true"><span><code class="def-type"><var class="var">val</var> =</code> <strong class="def-name">true</strong> <code class="def-code-arguments">(<var class="var">x</var>)</code><a class="copiable-link" href="#index-true"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-true-1"><span><code class="def-type"><var class="var">val</var> =</code> <strong class="def-name">true</strong> <code class="def-code-arguments">(<var class="var">n</var>, <var class="var">m</var>)</code><a class="copiable-link" href="#index-true-1"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-true-2"><span><code class="def-type"><var class="var">val</var> =</code> <strong class="def-name">true</strong> <code class="def-code-arguments">(<var class="var">n</var>, <var class="var">m</var>, <var class="var">k</var>, …)</code><a class="copiable-link" href="#index-true-2"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-true-3"><span><code class="def-type"><var class="var">val</var> =</code> <strong class="def-name">true</strong> <code class="def-code-arguments">(…, "like", <var class="var">var</var>)</code><a class="copiable-link" href="#index-true-3"> ¶</a></span></dt>
<dd><p>Return a matrix or N-dimensional array whose elements are all logical 1.
</p>
<p>If invoked with a single scalar integer argument, return a square
matrix of the specified size.
</p>
<p>If invoked with two or more scalar integer arguments, or a vector of integer
values, return an array with given dimensions.
</p>
<p>If a logical variable <var class="var">var</var> is specified after <code class="code">"like"</code>, the output
<var class="var">val</var> will have the same sparsity as <var class="var">var</var>.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="#XREFfalse">false</a>.
</p></dd></dl>
<a class="anchor" id="XREFfalse"></a><span style="display:block; margin-top:-4.5ex;"> </span>
<dl class="first-deftypefn">
<dt class="deftypefn" id="index-false"><span><code class="def-type"><var class="var">val</var> =</code> <strong class="def-name">false</strong> <code class="def-code-arguments">(<var class="var">x</var>)</code><a class="copiable-link" href="#index-false"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-false-1"><span><code class="def-type"><var class="var">val</var> =</code> <strong class="def-name">false</strong> <code class="def-code-arguments">(<var class="var">n</var>, <var class="var">m</var>)</code><a class="copiable-link" href="#index-false-1"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-false-2"><span><code class="def-type"><var class="var">val</var> =</code> <strong class="def-name">false</strong> <code class="def-code-arguments">(<var class="var">n</var>, <var class="var">m</var>, <var class="var">k</var>, …)</code><a class="copiable-link" href="#index-false-2"> ¶</a></span></dt>
<dt class="deftypefnx def-cmd-deftypefn" id="index-false-3"><span><code class="def-type"><var class="var">val</var> =</code> <strong class="def-name">false</strong> <code class="def-code-arguments">(…, "like", <var class="var">var</var>)</code><a class="copiable-link" href="#index-false-3"> ¶</a></span></dt>
<dd><p>Return a matrix or N-dimensional array whose elements are all logical 0.
</p>
<p>If invoked with a single scalar integer argument, return a square
matrix of the specified size.
</p>
<p>If invoked with two or more scalar integer arguments, or a vector of integer
values, return an array with given dimensions.
</p>
<p>If a logical variable <var class="var">var</var> is specified after <code class="code">"like"</code>, the output
<var class="var">val</var> will have the same sparsity as <var class="var">var</var>.
</p>
<p><strong class="strong">See also:</strong> <a class="ref" href="#XREFtrue">true</a>.
</p></dd></dl>
</div>
<hr>
<div class="nav-panel">
<p>
Next: <a href="Automatic-Conversion-of-Data-Types.html">Automatic Conversion of Data Types</a>, Previous: <a href="Bit-Manipulations.html">Bit Manipulations</a>, Up: <a href="Numeric-Data-Types.html">Numeric Data Types</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>
|