How can I write a Level-2 MATLAB S-Function where the input and output

Technical Source
2 min readOct 22, 2021


How can I write a Level-2 MATLAB S-Function where the input and output might have unknown dimensions, or even be variable-size signals?

I need to write a Level-2 MATLAB S-Function where the input and/or output dimensions are unknown, and might also change during simulation.

Specifically, I would like to implement the two following scenarios:

A) Input: 1-D array of unknown fixed size. Two outputs: sorted array, and sum of all the elements.

B) Same as A), but the size of the array might vary during simulation.

NOTE:- provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

Expert Answer

Kshitij Singh answered . 2021–10–22 08:38:41


In the setup function of your MATLAB S-Function, you need to configure port properties to be inherited or dynamic:

>> block.SetPreCompInpPortInfoToDynamic;>> block.SetPreCompOutPortInfoToDynamic;

You can then override the only properties that you known, as for example:

>> block.InputPort(1).DatatypeID = 0;>> block.InputPort(1).Complexity = ‘Real’;>> block.InputPort(1).DirectFeedthrough = true;

>> block.OutputPort(1).DatatypeID = 0;>> block.OutputPort(1).Complexity = ‘Real’;>> block.OutputPort(2).Dimensions = 1;>> block.OutputPort(2).DatatypeID = 0;>> block.OutputPort(2).Complexity = ‘Real’;

Note how the field ‘Dimensions’ has not been set for InputPort(1) and OutputPort(1).





Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.