Input and Output Arguments

Support variable length argument lists, check arguments, declare arguments for validation

Functions can accept variable numbers of inputs and outputs using a single function signature. MATLAB® provides several techniques for checking the number, type, size, and other aspects of the inputs to ensure functions perform as intended and to provide useful error messages in cases where inputs are not valid.

Functions

expand all

narginNumber of function input arguments
nargoutNumber of function output arguments
vararginVariable-length input argument list
varargoutVariable-length output argument list
narginchkValidate number of input arguments
nargoutchkValidate number of output arguments
validateattributesCheck validity of array
validatestringCheck validity of text
inputParserInput parser for functions
inputnameVariable name of function input
mfilenameFile name of currently running code

Arguments Blocks

argumentsDeclare function argument validation
namedargs2cellConvert structure containing name-value pairs to cell array

Validation Functions

mustBeFiniteValidate that value is finite or issue error
mustBeGreaterThanValidate that value is greater than another value or issue error
mustBeGreaterThanOrEqualValidate that value is greater than or equal to another value or issue error
mustBeIntegerValidate that value is integer or issue error
mustBeLessThanValidate that value is less than another value or issue error
mustBeLessThanOrEqualValidate that value is less than or equal to another value or issue error
mustBeMemberValidate that value is member of specified set
mustBeNegativeValidate that value is negative or issue error
mustBeNonemptyValidate that value is nonempty or issue error
mustBeNonNanValidate that value is nonNaN
mustBeNonnegativeValidate that value is nonnegative or issue error
mustBeNonpositiveValidate that value is nonpositive or issue error
mustBeNonsparseValidate that value is nonsparse or issue error
mustBeNonzeroValidate that value is nonzero or issue error
mustBeNumericValidate that value is numeric or issue error
mustBeNumericOrLogicalValidate that value is numeric or logical or issue error
mustBePositiveValidate that value is positive or issue error
mustBeRealValidate that value is real or issue error

Topics

Check Number of Arguments

Find Number of Function Arguments

Use nargin and nargout to determine how many input or output arguments your function receives.

Support Variable Number of Inputs

Define a function that accepts a variable number of input arguments using varargin. The varargin argument is a cell array that contains the function inputs, where each input is in its own cell.

Support Variable Number of Outputs

Define a function that returns a variable number of output arguments using varargout. Output varargout is a cell array that contains the function outputs, where each output is in its own cell.

Validate Number of Function Arguments

Check if your custom function receives a valid number of input or output arguments. MATLAB performs some argument checks automatically. For other cases, you can use narginchk or nargoutchk.

Argument Checking in Nested Functions

There are special considerations for using varargin, varargout, nargin, and nargout with nested functions.

Ignore Function Inputs

If your function accepts a predefined set of inputs, but does not use all the inputs, use the tilde (~) operator to ignore them in your function definition.

Ignore Function Outputs

This example shows how to request specific outputs from a function.

Parse Input Arguments

Ways to Parse Function Inputs

Choose a technique for checking the validity of input arguments.

Function Argument Validation

Declare input argument class and size and enforce restrictions on argument values.

Check Function Inputs with validateattributes

This example shows how to verify that the inputs to your function conform to a set of requirements using the validateattributes function.

Parse Function Inputs

Define required and optional inputs, assign defaults to optional inputs, and validate all inputs to a custom function using the Input Parser.