File Exchange

image thumbnail

Option parser

version (3.09 KB) by Peter Corke
A generalized option parser for Toolbox functions


Updated 19 Feb 2013

View License

Supports keyword options that have a value, are a boolean flag, or enumeration types (string or int).

The software pattern is:

function(a, b, c, varargin) = false; = true;
opt.blah = [];
opt.choose = {'this', 'that', 'other'}; = {'#no', '#yes'};
opt = optparse(opt, varargin);

Optional arguments to the function behave as follows:
'foo' sets <- true
'nobar' sets <- false
'blah', 3 sets opt.blah <- 3
'blah', {x,y} sets opt.blah <- {x,y}
'that' sets opt.choose <- 'that'
'yes' sets <- 2 (the second element)

and can be given in any combination.

If neither of 'this', 'that' or 'other' are specified then opt.choose <- 'this'.

Alternatively if:
opt.choose = {[], 'this', 'that', 'other'};
then if neither of 'this', 'that' or 'other' are specified then opt.choose <- []

If neither of 'no' or 'yes' are specified then <- 1.

- That the enumerator names must be distinct from the field names.
- That only one value can be assigned to a field, if multiple values are required they must be converted to a cell array.
- To match an option that starts with a digit, prefix it with 'd_', so the field 'd_3d' matches the option '3d'.
The allowable options are specified by the names of the fields in the structure opt. By default if an option is given that is not a field of opt an error is declared.

Sometimes it is useful to collect the unassigned options and this can be achieved using a second output argument
[opt,arglist] = tb_optparse(opt, varargin);
which is a cell array of all unassigned arguments in the order given in varargin.

Cite As

Peter Corke (2020). Option parser (, MATLAB Central File Exchange. Retrieved .

Comments and Ratings (1)


Hi.. Mr Peter
What is the function of Option parser?
Can you give the example that we have to use this function and the example that we don't need to use this function?

MATLAB Release Compatibility
Created with R2012b
Compatible with any release
Platform Compatibility
Windows macOS Linux