| Writing S-Functions | ![]() |
| Introduction |
Explains the syntax of an M S-function. |
| Defining S-Function Block Characteristics |
How to specify the number of states, inputs and outputs, and other attributes of the block implemented by the M S-function. |
| Processing S-Function Parameters |
How to process block parameters passed to the M S-function. |
| Examples of M-File S-Functions |
Examples of M S-functions that implement various types of blocks. |
Introduction
An M-file S-function consists of a MATLAB function of the following form
where f is the name of the S-function. During simulation of a model, Simulink repeatedly invokes f, using the flag argument to indicate the task (or tasks) to be performed for a particular invocation. Each time the S-function performs the task and returns the results in an output vector.
A template implementation of an M-file S-function, sfuntmpl.m, resides in matlabroot/toolbox/simulink/blocks. The template consists of a top-level function and a set of skeleton subfunctions, called S-function callback methods, each of which corresponds to a particular value of flag. The top-level function invokes the subfunction indicated by flag. The subfunctions perform the actual tasks required of the S-function during simulation.
| S-Function Examples | S-Function Arguments | ![]() |