/usr/share/doc/octave/octave.html/Evaluation.html is in octave-doc 4.2.2-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Evaluation (GNU Octave)</title>
<meta name="description" content="Evaluation (GNU Octave)">
<meta name="keywords" content="Evaluation (GNU Octave)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<link href="index.html#Top" rel="start" title="Top">
<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="index.html#Top" rel="up" title="Top">
<link href="Calling-a-Function-by-its-Name.html#Calling-a-Function-by-its-Name" rel="next" title="Calling a Function by its Name">
<link href="Operator-Precedence.html#Operator-Precedence" rel="prev" title="Operator Precedence">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
ul.no-bullet {list-style: none}
-->
</style>
<link rel="stylesheet" type="text/css" href="octave.css">
</head>
<body lang="en">
<a name="Evaluation"></a>
<div class="header">
<p>
Next: <a href="Statements.html#Statements" accesskey="n" rel="next">Statements</a>, Previous: <a href="Expressions.html#Expressions" accesskey="p" rel="prev">Expressions</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Evaluation-1"></a>
<h2 class="chapter">9 Evaluation</h2>
<p>Normally, you evaluate expressions simply by typing them at the Octave
prompt, or by asking Octave to interpret commands that you have saved in
a file.
</p>
<p>Sometimes, you may find it necessary to evaluate an expression that has
been computed and stored in a string, which is exactly what the
<code>eval</code> function lets you do.
</p>
<a name="XREFeval"></a><dl>
<dt><a name="index-eval"></a>: <em></em> <strong>eval</strong> <em>(<var>try</var>)</em></dt>
<dt><a name="index-eval-1"></a>: <em></em> <strong>eval</strong> <em>(<var>try</var>, <var>catch</var>)</em></dt>
<dd><p>Parse the string <var>try</var> and evaluate it as if it were an Octave
program.
</p>
<p>If execution fails, evaluate the optional string <var>catch</var>.
</p>
<p>The string <var>try</var> is evaluated in the current context, so any results
remain available after <code>eval</code> returns.
</p>
<p>The following example creates the variable <var>A</var> with the approximate
value of 3.1416 in the current workspace.
</p>
<div class="example">
<pre class="example">eval ("A = acos(-1);");
</pre></div>
<p>If an error occurs during the evaluation of <var>try</var> then the <var>catch</var>
string is evaluated, as the following example shows:
</p>
<div class="example">
<pre class="example">eval ('error ("This is a bad example");',
'printf ("This error occurred:\n%s\n", lasterr ());');
-| This error occurred:
This is a bad example
</pre></div>
<p>Programming Note: if you are only using <code>eval</code> as an error-capturing
mechanism, rather than for the execution of arbitrary code strings,
Consider using try/catch blocks or unwind_protect/unwind_protect_cleanup
blocks instead. These techniques have higher performance and don’t
introduce the security considerations that the evaluation of arbitrary code
does.
</p>
<p><strong>See also:</strong> <a href="Evaluation-in-a-Different-Context.html#XREFevalin">evalin</a>, <a href="#XREFevalc">evalc</a>, <a href="Evaluation-in-a-Different-Context.html#XREFassignin">assignin</a>, <a href="Calling-a-Function-by-its-Name.html#XREFfeval">feval</a>.
</p></dd></dl>
<p>The <code>evalc</code> function additionally captures any console output
produced by the evaluated expression.
</p>
<a name="XREFevalc"></a><dl>
<dt><a name="index-evalc"></a>: <em><var>s</var> =</em> <strong>evalc</strong> <em>(<var>try</var>)</em></dt>
<dt><a name="index-evalc-1"></a>: <em><var>s</var> =</em> <strong>evalc</strong> <em>(<var>try</var>, <var>catch</var>)</em></dt>
<dd><p>Parse and evaluate the string <var>try</var> as if it were an Octave program,
while capturing the output into the return variable <var>s</var>.
</p>
<p>If execution fails, evaluate the optional string <var>catch</var>.
</p>
<p>This function behaves like <code>eval</code>, but any output or warning messages
which would normally be written to the console are captured and returned in
the string <var>s</var>.
</p>
<p>The <code>diary</code> is disabled during the execution of this function. When
<code>system</code> is used, any output produced by external programs is
<em>not</em> captured, unless their output is captured by the <code>system</code>
function itself.
</p>
<div class="example">
<pre class="example">s = evalc ("t = 42"), t
⇒ s = t = 42
⇒ t = 42
</pre></div>
<p><strong>See also:</strong> <a href="#XREFeval">eval</a>, <a href="Diary-and-Echo-Commands.html#XREFdiary">diary</a>.
</p></dd></dl>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">• <a href="Calling-a-Function-by-its-Name.html#Calling-a-Function-by-its-Name" accesskey="1">Calling a Function by its Name</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">• <a href="Evaluation-in-a-Different-Context.html#Evaluation-in-a-Different-Context" accesskey="2">Evaluation in a Different Context</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
</table>
<hr>
<div class="header">
<p>
Next: <a href="Statements.html#Statements" accesskey="n" rel="next">Statements</a>, Previous: <a href="Expressions.html#Expressions" accesskey="p" rel="prev">Expressions</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
|