octave: Accessing Global Variables in Oct-Files
A.1.7 Accessing Global Variables in Oct-Files
---------------------------------------------
Global variables allow variables in the global scope to be accessed.
Global variables can be accessed within oct-files by using the support
functions ‘get_global_value’ and ‘set_global_value’. ‘get_global_value’
takes two arguments, the first is a string representing the variable
name to obtain. The second argument is a boolean argument specifying
what to do if no global variable of the desired name is found. An
example of the use of these two functions is
#include <octave/oct.h>
DEFUN_DLD (globaldemo, args, , "Global Demo")
{
if (args.length () != 1)
print_usage ();
octave_value retval;
std::string s = args(0).string_value ();
octave_value tmp = get_global_value (s, true);
if (tmp.is_defined ())
retval = tmp;
else
retval = "Global variable not found";
set_global_value ("a", 42.0);
return retval;
}
An example of its use is
global a b
b = 10;
globaldemo ("b")
⇒ 10
globaldemo ("c")
⇒ "Global variable not found"
num2str (a)
⇒ 42