MATLAB Answers


Converting Matlab code with a function handle within a structure to C/C++

Asked by mcor
on 10 May 2019
Latest activity Commented on by mcor
on 11 May 2019
I'm trying to use the MATLAB Coder app to convert a series of functions to C/C++ functions.
I create a structure, and some elements of that structure are functions, like in the image below (the image represents a silly example with no meaning).
However, the converter fails because of the function handle:
"Function output 'model' cannot be a structure containing a function handle".
Anyone knows if I'm doing something wrong or there's a workaround it? I do need functions within a structure.
Machine: Mac,
Version: Matlab 2017b
Any help is appreciated.


Sign in to comment.

1 Answer

Answer by Ryan Livingston on 11 May 2019
 Accepted Answer

Function handles, and values containing them, are not supported as inputs and outputs from entry-point functions. As a workaround could move testFun to a separate file on the path, return the name, and use str2func when back in MATLAB.
If you describe what you're trying to achieve with this struct, there may be a better workaround.

  1 Comment

Thank you Ryan for the fast answer.
What i'm trying to do is to build a structure (model) with the several function handles I need in the main code, and pass "model" to all functions that need the function handles.
I made it this way to avoid having many many files, one for each function handle.
but I think your workaround may work.

Sign in to comment.