Anonymous function alternative for MATLAB Coder?
3 次查看(过去 30 天)
显示 更早的评论
I'm using fmincon and would like to export my code to C++ via MATLAB Coder. However, my objective function uses more arguments than just the variable being optimised. To allow this, I use an anonymous function handle for my objective function:
idealx=fmincon(@(x)obj_fun(x,y,z,...),...);
MATLAB Coder does not support anonymous functions. What alternative can I use to pass additional objective function arguments that MATLAB Coder supports?
1 个评论
Ryan Livingston
2015-7-29
MATLAB Coder unfortunately does not support fmincon either since it isn't in the list of supported functions.
回答(2 个)
Muthu Annamalai
2015-7-28
编辑:Muthu Annamalai
2015-7-28
You may write out your function with extra arguments as object.
First define this class,
classdef FcnWithArgs
properties
a
b
c
end
methods
function obj = FcnWithArgs(a,b,c)
obj.a = a;
% etc.
end
function yval = invoke(obj,xval)
yval = original_function( xval, obj.a, obj.b, obj.c )
end
end
end
Next you can make an instance of this class and use it with fmincon This could be codegen compatible. Worth a try.
0 个评论
Ryan Livingston
2015-7-29
For the general issue of replacing an anonymous function for code generation, see this question on fminsearch that describes modelling an anonymous function using persistent variables.
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!