File Exchange

image thumbnail

getOptions

version 1.0.1 (7.98 KB) by Biafra Ahanonu
A simple, user friendly way to handle and parse variable argument inputs (varargin) into MATLAB functions.

13 Downloads

Updated 11 May 2020

GitHub view license on GitHub

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 (2020). getOptions (https://github.com/bahanonu/getOptions/releases/tag/v1.0.1), GitHub. Retrieved .

Comments and Ratings (1)

Updates

1.0.1

See release notes for this release on GitHub: https://github.com/bahanonu/getOptions/releases/tag/v1.0.1

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

Inspired: calciumImagingAnalysis