arguments keyword to check function arguments Arguments block must be the expression in the function.

## Syntax

            arguments
                argName1 (dimensions) datatype {validators} = defaultValue
                ...
                argNameN
            end

## Arguments

argName1, ... argNameN

  Name of the arguments from function protoptype.

  All input arguments must be declared in `arguments` block and in the same order.

(dimension)

  Expected (i, j, ...) dimensions for an input argument like `(2, 3, 4)`. Must be a list of integer values or `:` or input variable name.

  Matrix form (4, [3 6 10]) can be used to except size of `4 x 3` or `4 x 6` or `4 x 10`.

  If input argument is a scalar and expected dimensions are bigger, input argument will be expand to match the expected dimensions.

  If expected dimensions is a vector (1xn or nx1) and input argument is a vector, input will be transposed to match expected form.

datatype

  Expected datatype of input arguments. Inputs must be of datatype or convertable to this type.

  `datatype` can be `double`, `(u)int(8/16/32/64)`, `boolean`, `string`.

{validators}

  List of predefined functions used to check input validity.

  Each validator must be validate to accept the input.

  List of validators

defaultValue

  If an input is not given by caller, variable will take this value.

  All variables with default value must be at the end of the prototype.

## Examples

                function test(x, y)
                    arguments
                        x (1, 10) double {mustBeReal, mustBePositive}
                        y double = 1
                    end

                    disp(x, y)
                end

                //OK
                a = 1:10;
                test(a) //y == 1 its default value
                test(a') //x will be transposed to match 1 x 10 dimensions, y == 1
                test(42, 2) //x become a(ones(1, 10)) and y == 2

                //rejected
                test() //x is required
                test(a, list(1)) // a list cannot be convert to a double
                test(0:9) // x must be > 0

## See also

- Arguments validators

## History

2024.0 Introduction in Scilab.