Strange Error!..... Error while obtaining sizes from Mex-sfunction (in simulink)

72 views (last 30 days)
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).

Accepted Answer

Kaustubha Govind
Kaustubha Govind on 19 Nov 2012
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.
  4 Comments
Kaustubha Govind
Kaustubha Govind on 26 Nov 2012
Arsalan: Please consider submitting an enhancement request via MathWorks Tech Support team for MATLAB Coder to generate an S-function along with a TLC-file for a MATLAB function.
Viren
Viren on 3 Dec 2013
Hi Kastubha, Any advice for those of us who MUST convert their 'matlab s function' block into a 'CMEX' file? I have this weird bug where I have two copies of one component in the model (I'm simplifying a bit). When I use a CMEX version of the same code, no problemo, but with the matlab sFunction block I get an error.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!