octave: Evaluation

 
 9 Evaluation
 ************
 
 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.
 
    Sometimes, you may find it necessary to evaluate an expression that
 has been computed and stored in a string, which is exactly what the
 ‘eval’ function lets you do.
 
  -- : eval (TRY)
  -- : eval (TRY, CATCH)
      Parse the string TRY and evaluate it as if it were an Octave
      program.
 
      If execution fails, evaluate the optional string CATCH.
 
      The string TRY is evaluated in the current context, so any results
      remain available after ‘eval’ returns.
 
      The following example creates the variable A with the approximate
      value of 3.1416 in the current workspace.
 
           eval ("A = acos(-1);");
 
      If an error occurs during the evaluation of TRY then the CATCH
      string is evaluated, as the following example shows:
 
           eval ('error ("This is a bad example");',
                 'printf ("This error occurred:\n%s\n", lasterr ());');
                ⊣ This error occurred:
                   This is a bad example
 
      Programming Note: if you are only using ‘eval’ 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.
 
DONTPRINTYET       See also: Seeevalin XREFevalin, Seeevalc XREFevalc, *noteDONTPRINTYET       See also: Seeevalin XREFevalin, Seeevalc XREFevalc, See
      assignin XREFassignin, Seefeval XREFfeval.
 
    The ‘evalc’ function additionally captures any console output
 produced by the evaluated expression.
 
  -- : S = evalc (TRY)
  -- : S = evalc (TRY, CATCH)
      Parse and evaluate the string TRY as if it were an Octave program,
      while capturing the output into the return variable S.
 
      If execution fails, evaluate the optional string CATCH.
 
      This function behaves like ‘eval’, but any output or warning
      messages which would normally be written to the console are
      captured and returned in the string S.
 
      The ‘diary’ is disabled during the execution of this function.
      When ‘system’ is used, any output produced by external programs is
      _not_ captured, unless their output is captured by the ‘system’
      function itself.
 
           s = evalc ("t = 42"), t
             ⇒ s = t =  42
 
             ⇒ t =  42
 
      See also: Seeeval XREFeval, Seediary XREFdiary.
 

Menu