Introduction - If you have any usage issues, please Google them yourself
% The goal of this function is allow easy and intuitive parsing of user
% inputs. The function supports three common way to pass variables to
% functions:
% (1) "Name value" pairs- the "variable name" string is followed by the
% "variable value". The inputs orders is arbitrary, and the user
% can specify the relevant inputs.
% (2) Structure input- the structure field names will specify the variable name, and
% field content is the variable value.
% (3) Regular case, where variables name is defined by their position in function call.
% Both methods "name-value" pairs and structure can be combined. User are advised to
% load default values, before calling this function, to guarantee all variable are
% initialized.
% User inputs will be interpreted by the default Matlab way, only if none
% of the inputs was interpreted by the other two methods.