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