MATLAB Answers

How to pass name-value-pair arguments to templateTree() as a struct?

8 views (last 30 days)
Tobias
Tobias on 25 Aug 2014
Edited: Sugar Daddy on 2 Jul 2020
I am trying to group multiple name-value pair arguments and pass them to templateTree() as one. The usual call would be, e.g.:
templateTree('Surrogate','off','Prune','on','QEToler',1e-10)
I would like something like this:
opts = struct('Surrogate','off','Prune','on','QEToler',1e-10)
templateTree(opts)
If I try that the following error is shown:
Error using internal.stats.parseArgs (line 42)
Wrong number of arguments.
Error in classreg.learning.FitTemplate.make (line 38)
[usertype,~,modelArgs] = ...
Error in templateTree (line 120)
temp = classreg.learning.FitTemplate.make('Tree',varargin{:});
So if templateTree() cannot handle structs as input arguments, is there another way to achieve the same thing? Or is this somehow possible with structs?
Thanks!

Answers (1)

Sugar Daddy
Sugar Daddy on 2 Jul 2020
Edited: Sugar Daddy on 2 Jul 2020

Daddy Views

T_T= templateTree('Surrogate','off','Prune','on','QEToler',1e-10);
opts = {'Surrogate','off','Prune','on','QEToler',1e-10};
T_T_O = templateTree(opts{:});
Now check if they are equal
assert(isequal(T_T_O,T_T))

  0 Comments

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!