运行fmincon与第三方mexFunction返回结构的问题

时间:2017-09-22 14:14:23

标签: c++ matlab mex

我在尝试将第三方代码作为mex文件运行时遇到了一个非常明显的问题。这个mexfile的源代码是可用的,但我宁愿不要搞乱它。不幸的是,它在输出中返回一个结构,这使得它与MATLAB中的fmincon不兼容。有什么我可以在MATLAB方面做的事情,所以我没有得到: FMINCON要求函数返回的所有值都是数据类型double。

或者我是否需要弄乱实际的代码?

1 个答案:

答案 0 :(得分:0)

你可以将mex函数调用包装在一个函数中,该函数将值分解为double并将其赋予fmincon吗?

% MATLAB flavored Pseudocode...

function doubleVal = callMex( input )
    % Function that wraps the mex function call and returns the appropriate type.
    structVal = mex_function( input );
    doubleVal = structVal.someVal;
end

fmincon(callMex, inputs); % <-- somewhere in another file