Asked by Arsalan
on 17 Nov 2012

Hi!I need your help. I generated C-mex file from my m-function code (where i used "assert" to define class and size of my input parameters) sucessfully using CODEGEN. Now i want to use my c-mex function in Simulink for RTW.

So, for that i added a S-function block and gave it my function name in "S-function name" place. My code required 11 inputs (1 matrix,9 vectors and 1 constant).Which i was trying to input my s-function block in "S-function parameters" but it was not accepting it and continously giving following error message

"Error due to multiple causes--- Error while obtaining sizes from Mex S-function 'xcxc_mex' in "s-function ----11 inputs required for entry point 'xcxc' ".

I was using generated mex-c function in matlab command window sucessfully with same parameters (variables in workspace).

similar question is asked before http://www.mathworks.com/matlabcentral/newsreader/view_thread/291772

Answer by Kaustubha Govind
on 19 Nov 2012

Accepted answer

S-functions are a special kind of MEX-function which have a specified interface that the Simulink engine uses to interact with it. The generic MEX-file generated by MATLAB Coder ("codegen" command) does not generate the required interface. Instead, I would recommend directly using your MATLAB code in Simulink from a MATLAB Function block, which automatically generates a MEX-function from your MATLAB code and interfaces it with the Simulink engine.

Show 1 older comment

Kaustubha Govind
on 26 Nov 2012

Viren
on 3 Dec 2013

Opportunities for recent engineering grads.

## 0 Comments