运行 fmincon 与第三方 mexFunction 的问题 returns 一个结构
Issue with running fmincon with third party mexFunction that returns a struct
我在尝试将第三方代码 运行 作为 mex 文件时遇到一个非常明显的问题。此 mexfile 的源代码可用,但我不想弄乱它。不幸的是,它 returns 是输出中的一个结构,这使得它与 MATLAB 中的 fmincon 不兼容。有什么我可以在 MATLAB 方面做的事情,这样我就不会得到:
FMINCON 要求函数返回的所有值都是双精度数据类型。
或者我必须修改实际代码吗?
你能否将 mex 函数调用包装在一个函数中,将值分解为双精度值并将其提供给 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
我在尝试将第三方代码 运行 作为 mex 文件时遇到一个非常明显的问题。此 mexfile 的源代码可用,但我不想弄乱它。不幸的是,它 returns 是输出中的一个结构,这使得它与 MATLAB 中的 fmincon 不兼容。有什么我可以在 MATLAB 方面做的事情,这样我就不会得到: FMINCON 要求函数返回的所有值都是双精度数据类型。
或者我必须修改实际代码吗?
你能否将 mex 函数调用包装在一个函数中,将值分解为双精度值并将其提供给 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