EVAL Evaluate a String
Section: FreeMat Functions
Usage
Theeval
function evaluates a string. The general syntax
for its use is
eval(s)
where s
is the string to evaluate. If s
is an expression
(instead of a set of statements), you can assign the output
of the eval
call to one or more variables, via
x = eval(s) [x,y,z] = eval(s)
Another form of eval
allows you to specify an expression or
set of statements to execute if an error occurs. In this
form, the syntax for eval
is
eval(try_clause,catch_clause),
or with return values,
x = eval(try_clause,catch_clause) [x,y,z] = eval(try_clause,catch_clause)
These later forms are useful for specifying defaults. Note that
both the try_clause
and catch_clause
must be expressions,
as the equivalent code is
try [x,y,z] = try_clause catch [x,y,z] = catch_clause end
so that the assignment must make sense in both cases.
Example
Here are some examples ofeval
being used.
--> eval('a = 32') a = 32 --> b = eval('a') b = 32
The primary use of the eval
statement is to enable construction
of expressions at run time.
--> s = ['b = a' ' + 2'] s = b = a + 2 --> eval(s) b = 34
Here we demonstrate the use of the catch-clause to provide a default value
--> a = 32 a = 32 --> b = eval('a','1') b = 32 --> b = eval('z','a+1') b = 33
Note that in the second case, b
takes the value of 33, indicating
that the evaluation of the first expression failed (because z
is
not defined).