Main Content

Argument Definitions

Accept a variable number of inputs or outputs, check for valid values

Since MATLAB® is an untyped language, most functions do not require argument declarations or validation. However, if your function has wide usage and you need to verify the type, size, or other aspects of inputs to ensure that your code works as expected, you can define an arguments block (since R2019b). For details, see Function Argument Validation.

Additionally, you can check how many inputs or outputs your function receives, the names of input variables, and more.


expand all

Arguments Block

argumentsDeclare function argument validation

Numeric Value Validation

mustBePositiveValidate that value is positive
mustBeNonpositiveValidate that value is nonpositive
mustBeNonnegativeValidate that value is nonnegative
mustBeNegativeValidate that value is negative
mustBeFiniteValidate that value is finite
mustBeNonNanValidate that value is not NaN
mustBeNonzeroValidate that value is nonzero
mustBeNonsparseValidate that value is nonsparse
mustBeRealValidate that value is real
mustBeIntegerValidate that value is integer
mustBeNonmissingValidate that value is not missing


mustBeGreaterThanValidate that value is greater than another value
mustBeLessThanValidate that value is less than another value
mustBeGreaterThanOrEqualValidate that value is greater than or equal to another value
mustBeLessThanOrEqualValidate that value is less than or equal to another value

Data Types

mustBeAValidate that value comes from one of specified classes
mustBeNumericValidate that value is numeric
mustBeNumericOrLogicalValidate that value is numeric or logical
mustBeFloatValidate that value is floating-point array
mustBeTextValidate that value is string array, character vector, or cell array of character vectors
mustBeTextScalarValidate that value is single piece of text
mustBeNonzeroLengthTextValidate that value is text with nonzero length
mustBeUnderlyingTypeValidate that value has specified underlying type


mustBeNonemptyValidate that value is nonempty
mustBeScalarOrEmptyValidate that value is scalar or empty
mustBeVectorValidate that value is vector

Range and Set Membership

mustBeInRangeValidate that value is in the specified range
mustBeMemberValidate that value is member of specified set


mustBeFileValidate that path refers to file
mustBeFolderValidate that input path refers to folder
mustBeValidVariableNameValidate that input name is valid variable name

Name-Value Arguments Structure

namedargs2cellConvert structure containing name-value pairs to cell array


vararginVariable-length input argument list
narginNumber of function input arguments
narginchkValidate number of input arguments


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


Argument Values

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.

Number of Arguments

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.

Find Number of Function Arguments

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

Pass-Through Inputs

Ignore Inputs in Function Definitions

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.