[fh_plus, fh_minus, fh_mtimes] = tstfun ()
fh_plus =
function_handle with value:
@plus
fh_minus =
function_handle with value:
@minus
fh_mtimes =
function_handle with value:
@mtimes
obj = tstcls ();
fh_mrdivide = obj.get_fh ();
functions (fh_plus)
ans =
struct with fields:
function: 'plus'
type: 'simple'
file: ''
functions (fh_minus)
ans =
struct with fields:
function: 'minus'
type: 'scopedfunction'
file: 'C:\temp\mltest\str2func-test\tstfun.m'
parentage: {1×2 cell}
functions (fh_mtimes)
ans =
struct with fields:
function: 'mtimes'
type: 'scopedfunction'
file: 'C:\temp\mltest\str2func-test\private\mtimes.m'
parentage: {'mtimes'}
functions (fh_mrdivide)
ans =
struct with fields:
function: 'mrdivide'
type: 'classsimple'
file: 'MATLAB built-in function'
class: 'tstcls'
fh_plus (1, 2)
ans =
3
fh_minus (3, 4)
local minus!
ans =
[]
fh_mtimes (5, 6)
private mtimes!
ans =
[]
fh_mrdivide (obj, 8)
method tstcls.mrdivide!
ans =
[]
%% Does the behavior change if we change to another directory so that
%% the private function is no longer visible?
cd subdir
pwd
ans =
'C:\temp\mltest\str2func-test\subdir'
functions (fh_plus)
ans =
struct with fields:
function: 'plus'
type: 'simple'
file: ''
functions (fh_minus)
ans =
struct with fields:
function: 'minus'
type: 'scopedfunction'
file: 'C:\temp\mltest\str2func-test\tstfun.m'
parentage: {1×2 cell}
functions (fh_mtimes)
ans =
struct with fields:
function: 'mtimes'
type: 'scopedfunction'
file: 'C:\temp\mltest\str2func-test\private\mtimes.m'
parentage: {'mtimes'}
functions (fh_mrdivide)
ans =
struct with fields:
function: 'mrdivide'
type: 'classsimple'
file: 'MATLAB built-in function'
class: 'tstcls'
fh_plus (1, 2)
ans =
3
fh_minus (3, 4)
local minus!
ans =
[]
fh_mtimes (5, 6)
private mtimes!
ans =
[]
fh_mrdivide (obj, 8)
method tstcls.mrdivide!
ans =
[]
%% What if we also clear functions?
clear functions
functions (fh_plus)
ans =
struct with fields:
function: 'plus'
type: 'simple'
file: ''
functions (fh_minus)
ans =
struct with fields:
function: 'minus'
type: 'scopedfunction'
file: 'C:\temp\mltest\str2func-test\tstfun.m'
parentage: {1×2 cell}
functions (fh_mtimes)
ans =
struct with fields:
function: 'mtimes'
type: 'scopedfunction'
file: 'C:\temp\mltest\str2func-test\private\mtimes.m'
parentage: {'mtimes'}
functions (fh_mrdivide)
ans =
struct with fields:
function: 'mrdivide'
type: 'classsimple'
file: 'MATLAB built-in function'
class: 'tstcls'
fh_plus (1, 2)
ans =
3
fh_minus (3, 4)
local minus!
ans =
[]
fh_mtimes (5, 6)
private mtimes!
ans =
[]
fh_mrdivide (obj, 8)
{Error using /
Method 'mrdivide' is not defined for class 'tstcls' or is
removed from MATLAB's search path.
Error in tstscript (line 46)
fh_mrdivide (obj, 8)
}
diary off