好的,所以我有一个脚本可以运行lsqlin优化功能数百万次。为了加速这段代码我“codegen”它(基本上自动创建一些mex文件)。这是Linear systems of inequations的后续内容。
这里的问题是lsqlin以及其他优化函数没有被转换,需要在外部调用,这会导致效率的下降。
我已经找到了MINQ工具箱,但无法理解如何从lsqlin转换为此。还找到了需要许可证的QPC工具箱,我目前正在等待。
是否有人建议使用其他工具箱以及如何将lsqlin转换为该工具箱?
对codegen lsqlin脚本的一般想法(可以看到链接被调用而不是完全转换)。
CODE:
function main_script()
coder.extrinsic('lsqlin_script')
for i=1:10^7
X=lsqlin_script(A,b,X0)
...
end
end
function X=lsqlin_script(A,b,X0)
X=lsqlin(eye(2),X0, A, b,[],[],[],[],X0, optimoptions('lsqlin','Display','Off'));
end
RUN:
codegen main_script.m
main_script_mex(INPUTS)
答案 0 :(得分:0)
如果您要描述您的original problem我认为您可以期待更多答案。
避免lsqlin
的可能方法:
在由Pxyz
和A
定义的每个平面上计算b
的{{3}}。
检查预测是否满足不等式要求。从那些满足选择最接近Pxyz
的点。如果未找到有效点,则最近的点将位于平面的交点上。计算从Pxyz
到每个交叉线的最短距离...按照应用于平面投影的步骤进行..
正如您所看到的那样,如果您认为它可以解决您的问题,那么您应该详细说明。 对于这些计算,您不需要优化功能。