本帖最后由 andy20071846 于 2012-7-27 09:13 编辑
大家好,我现在遇到这样的一个问题,在c中调用matlab的fmincon
mcc编译后给出的接口如下:
myfmintest(int nargout, mwArray& X, mwArray& Fval, mwArray& Exitflag, const mwArray& myfun, const mwArray& xx0, const mwArray& A, const mwArray& B, const mwArray& Aeq, const mwArray& Beq, const mwArray& LB, const mwArray& UB, const mwArray& mycon);
我在c中定义了目标函数和约束,需要把他们传给myfun和mycon,问题的关键是目标函数和约束随着输入参数是变化的,所以不知道该如何传递数据,或者大家有什么好的思路吗?
目前我想到一种,就是在m文件中事先写好myfun和mycon,把c中的那些参数写进m文件的输入参数,然后编译供vc调用,但是具体问题中参数个数很多,在c中调用的时候也不太好赋值,稍有不慎就出问题,还有就是这样的话执行效率也不会高,希望大家可以帮帮忙,谢谢了!
ps:我自己单独测试了一个很简单的例子,如果只有目标函数而且目标函数表达式是事先确定的,那么传递进去毫无问题,如果随着参数变化就不知道如何办了,比如f=x(1)^2+x(1)*x(2)-100我可以通过传递字符串处理,但是f=f+x(i)^2&#