Is it possible to generate a Mex function which has within it another mex function?

1 view (last 30 days)
I am trying to create a Mex function of a complex algorithm in which it resides the Mex function VchooseK (https://it.mathworks.com/matlabcentral/fileexchange/26190-vchoosek).
Until the generation step there are no errors but then while generating the following error appeares:
The extrinsic function 'VChooseK' is not available for standalone code generation. It must be eliminated for stand-alone code to be generated. It could not be eliminated because its outputs appear to influence the calling function. Fix this error by not using 'VChooseK' or by ensuring that its outputs are unused.
Does anyone have any solution for this? Is it even possible to have a "nested" mex?
Thank you.

Answers (1)

Steven Lord
Steven Lord on 20 Sep 2022
I'm not 100% certain but if you're trying to generate code using MATLAB Coder on a file that calls a MEX-file, you may be able to do something like what you want using coder.ceval or some of the other functions listed on this category page in the documentation.
  2 Comments
James Tursa
James Tursa on 20 Sep 2022
Just a side note. Hand-written mex functions can certainly call other mex functions via the mexCallMATLAB( ) function. I have done this many times, so the basic capability is there for nesting mex routine calls. But I don't use the Coder so can't comment on that aspect of it.
Giulio Brandizzi
Giulio Brandizzi on 21 Sep 2022
I should have pointed out that i have already tried by using coder.extrinsic, as without it during generation the error states:
"... Consider using coder.extrinsic to declare MEX function as extrinsic."
And with it the error is the aforementioned one.
@James Tursa Could you point to me a tutorial on how to create a hand written mex? Is it possible to act on the C/C++ code while it is created by the Matlab Coder?

Sign in to comment.

Categories

Find more on MATLAB Coder in Help Center and File Exchange

Tags

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!