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!