File Exchange

image thumbnail

Option parser

version 1.0 (3.09 KB) by

A generalized option parser for Toolbox functions

2 Downloads

Updated

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)
opt.foo = false;
opt.bar = true;
opt.blah = [];
opt.choose = {'this', 'that', 'other'};
opt.select = {'#no', '#yes'};
opt = optparse(opt, varargin);

Optional arguments to the function behave as follows:
'foo' sets opt.foo <- true
'nobar' sets opt.foo <- false
'blah', 3 sets opt.blah <- 3
'blah', {x,y} sets opt.blah <- {x,y}
'that' sets opt.choose <- 'that'
'yes' sets opt.select <- 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 opt.select <- 1.

Note:
- 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.

Comments and Ratings (1)

Muhammad

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
MATLAB 8.0 (R2012b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Win prizes and improve your MATLAB skills

Play today