Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

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

Asked by Arsalan on 17 Nov 2012
Latest activity Commented on by Viren on 3 Dec 2013

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

0 Comments

Arsalan

1 Answer

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.

4 Comments

Arsalan on 19 Nov 2012

it just increase the complexity. I think Mathworks should consider the compatibility of matlab coder and simulink coder..........thanks

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

Kaustubha Govind

Contact us