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

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:-*

Matlabsolutions.com 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

A)

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).

B)

**SEE COMPLETE ANSWER CLICK THE LINK**