image thumbnail

Optional function arguments

version 3.1.1.0 (79.2 KB) by Bill Whiten
Optional function arguments with default values: optndfts

720 Downloads

Updated 26 Sep 2018

View License

Optional function arguments: optndfts
Allows optional arguments to be specified as name value pairs, and
default values given for those augments not specified e.g.
function strt=demo1(arg1,varargin) % insert values to replace defaults
strt=optndfts(varargin,'aa',1,'bb',2,'cc',3); % default values
return % optndfts returns a struct
end
demo1(123,'bb',22,'aa',11)
ans =
aa: 11
bb: 22
cc: 3
Result is a struct, varagin input values can be list of name value pairs,
cell array of name value pairs, or a struct.
Also can allow for optional arguments that are not named:
function strt=demo2(arg1,varargin) % insert values to replace defaults
strt=optndfts(varargin,{'aa','bb'},'aa',1,'bb',2,'cc',3,'dd',4);
return % optndfts returns a struct
end
demo2(123,11,22,'dd',44)
ans =
aa: 11
bb: 22
cc: 3
dd: 44
demo2(123,11,'dd',44)
ans =
aa: 11
bb: 2
cc: 3
dd: 44
demo2(123,'dd',44)
ans =
aa: 1
bb: 2
cc: 3
dd: 44
A second output argument if present is a struct containing name value
pairs not given in the default values, these can be used to override
defaults for functions called within original function.
Functions selectfields and renamefields, with error messages suppressed,
can also be used to assist in passing options from an outer function
to nested functions (see doc selectfield, and doc renamefields).
Test files contain examples.
See doc optndfts

Cite As

Bill Whiten (2021). Optional function arguments (https://www.mathworks.com/matlabcentral/fileexchange/38881-optional-function-arguments), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2015a
Compatible with R2016b and later releases
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!