getOptions
getOptions is a simple, user friendly way to handle and parse variable argument inputs (varargin) into MATLAB functions.
Please see my 2014 write-up (https://bahanonu.com/getOptions) for details and reasons behind implementing and using this function.
Install by adding getOptions directory to path. Usage instructions in getOptions.m, in the README, on GitHub, or briefly below.
===
Instructions on using getOptions.
There are two ways to input options to a function that getOptions will parse. The first involves passing an 'options' parameter with a structure containing all options that the user would like to modify.
Method #1
opts.Option1= 1;
opts.Option2 = 0;
exampleFxn(inputArg1,'options',opts);
The second method involves passing Name-Value arguments as is normal in MATLAB.
Method #2
exampleFxn(inputArg1,'Option1',1,'Option2',0);
Next add getOptions to beginning of a function as below with all options put inside a structure.
function [out1] = exampleFxn(in1,varargin)
% ========================
% FUNCTION OPTIONS
% Description option #1
opts.Option1 = '';
% Description option #2
opts.Option2 = 1;
% Description option #3
opts.Option3 = 1;
% get options
opts = getOptions(opts,varargin); % ***HERE IS WHERE getOptions IS USED***
% disp(opts)
% unpack options into current workspace (not recommended)
% fn=fieldnames(opts);
% for i=1:length(fn)
% eval([fn{i} '=opts.' fn{i} ';']);
% end
% ========================
% Your function
end
Cite As
Biafra Ahanonu (2025). getOptions (https://github.com/bahanonu/getOptions/releases/tag/v1.0.1), GitHub. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.0.1 | See release notes for this release on GitHub: https://github.com/bahanonu/getOptions/releases/tag/v1.0.1 |
||
1.0.0 |