Argument Specification for Simulink Function Blocks

When a Simulink Function block is within the scope of a Function
Caller block, you do not have to specify the parameters. In such a case, the
Function Caller block can determine the input and output argument
specifications.

You specify arguments when a Simulink Function block is outside the scope
of a Function Caller block. A Simulink Function block is
considered to be out of scope of a Function Caller block when the two blocks
are in separate models referenced by a common parent model.

Example Argument Specifications for Data Types

This table lists possible input and output argument
specifications.

Simulink Function Block Data Type

Function Caller Block Expression

Description

double

double(1.0)

Double-precision scalar.

double

double(ones(12,1))

Double-precision column vector of length 12.

single

single(1.0)

Single-precision scalar.

int8, int16,
int32

int8(1), int16(1),
int32(1)

Integer scalars.

int32([1 1 1])

Integer row vector of length 3.

int32(1+1i)

Complex scalar whose real and imaginary parts are 32-bit integers.

uint8, int16,
int32

uint8(1), uint16(1),
uint32(1)

Unsigned integer scalers.

boolean

boolean(true),boolean(false)

Boolean, initialized to true (1) or false (0).

fixdt(1,16)

fixdt (signed, word_length)

fi(0,1,16)

fi (value, signed, word_length)

16-bit fixed-point signed scalar with binary point set to zero.

Fixed-point numbers can have a word size up to 128 bits.

fixdt(1,16,4)

fi(0,1,16,4)

16-bit fixed-point signed scalar with binary point set to 4.

fixdt(1,16,2^0,0)

fi(0,1,16,2^0,0)

16-bit fixed-point signed scalar with slope set to 2^0 and
bias set to 0.

Input Argument Specification for Bus Data Type

Create a bus with two signals, and then specify the Input argument
specification parameter for a Function Caller block. The
Function Caller block calls a Simulink Function block that
accepts the bus as input.

A bus input to a Function Caller block must be a non-virtual bus using a
bus object.

Create a Simulink® bus object myBus.

myBus = Simulink.Bus;

Add elements A and B.

myBus.Elements(1).Name = 'A';
myBus.Elements(2).Name = 'B';

Create a MATLAB® structure myBus_MATLABstruct with fields
A and B.

myBus_MATLABStruct.A = 0;
myBus_MATLABStruct.B = 0;

Create a Simulink parameter object myBus_parameter and assign the
MATLAB structure to the Value parameter.

For the Function Caller block dialog box, set the Input argument
specification parameter to myBus_parameter.

For the Argument In block dialog box of the Simulink Function block,
set the Data type parameter to Bus:
myBus.

Input Argument Specification for Enumerated Data Type

Create an enumerated data type for the three primary colors, and then specify the
Input argument specification parameter for a Function
Caller block. The Function Caller block calls a Simulink
Function block that accepts a signal with the enumerated type as input.

Create a MATLAB file for saving the data type definition. On the MATLAB toolstrip, select New > Class.

In the MATLAB editor, define the elements of an enumerated data type. The class
BasicColors is a subclass of the class
Simulink.IntEnumType.

For the Function Caller block dialog box, set the Input
argument specification. to myEnum_parameter.

For the Argument In block dialog box within a Simulink Function
block, set the Data type parameter to Enum:
BasicColors.

Input Argument Specification for an Alias Data Type

Create an alias name for the data type single, and then specify the Input
argument specification parameter for a Function Caller block.
The Simulink Function block called by the Function Caller
block also uses the alias name to define the input data type.

Create a Simulink alias data type object myAlias.

myAlias = Simulink.AliasType;

Assign a data type.

myAlias.BaseType = 'single';

Create a Simulink parameter object myAlias_parameter and assign the alias
name to the DataType parameter.