# Help understanding example for Inlining Matlab S-function

2 Ansichten (letzte 30 Tage)
Nshine am 6 Nov. 2019
Kommentiert: Nshine am 6 Nov. 2019
In https://au.mathworks.com/help/rtw/tlc/introduction-inline-s-functions.html#f34125, I am trying to follow the example under the heading "Inline MATLAB File S-Functions"
Step 5 is unclear:
"Step 5 :On the Signal Attributes tab of the Inport Block Parameters dialog box, set the Port dimensions parameter to 5."
What do I need to click on to find this? Where do I find the "Inport Block Parameters dialog box"?
Thanks,
##### 0 Kommentare-2 ältere Kommentare anzeigen-2 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

galaxy am 6 Nov. 2019
You double click to Inport block, choose the Signal Attributes tab
##### 3 Kommentare1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
galaxy am 6 Nov. 2019
I think step 5 for example about code generation from S-Function block.
So when you change contant block to inport block, generated code will same below.
/* S-Function (timestwo): '<Root>/MATLAB S-Function' */
/* Multiply input by two */
{
int_T i1;
const real_T *u0 = &times2_B.Gain[0];
real_T *y0 = &times2_Y.Out1[0];
for (i1=0; i1 < 5; i1++) {
y0[i1] = u0[i1] * 2.0;
}
}
5 dimenssion of inport is maximum of for loop
Nshine am 6 Nov. 2019
Thanks galaxy. That makes sense.
I'll note as well that there is no instruction in this example to compile the code by cliking on the Build icon (shortcut: Ctrl+B).
Once I build it, I can see a folder created named"
In this folder is the file:
which has the lines in the previous comment within the "Model step function"
/* Model step function */
void times2_B_step(void)
{
/* S-Function (timestwo): '<Root>/S-Function' incorporates:
* Constant: '<Root>/Constant'
* Outport: '<Root>/Out1'
*/
/* Multiply input by two */
{
int_T i1;
const real_T *u0 = &times2_B_P.Constant_Value[0];
real_T *y0 = &times2_B_Y.Out1[0];
for (i1=0; i1 < 10; i1++) {
y0[i1] = u0[i1] * 2.0;
}
}
etc...
However, during there is an error during compilation:
Error(s) encountered while building "times2_B": ### Failed to generate all binary outputs.
If anyone else encounters this error, I found the same problem discussed here: https://au.mathworks.com/matlabcentral/answers/156208-how-do-i-fix-failed-to-generate-all-binary-outputs-error.
Having a path where the simulink model, .m and .tld files are stored without white spaces fixed the problem.

Melden Sie sich an, um zu kommentieren.

### Kategorien

Mehr zu Simulink Coder finden Sie in Help Center und File Exchange

R2018b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by