代码是MATLAB的转换®使用代码的代码Matlab Coder™。代码需要一个Matlab编码器执照。
通常,您使用代码生成来部署未运行MATLAB的硬件上的代码。例如,您可以在机器人上部署代码,使用Lsqlin.
优化运动或计划。
例如,看到为lsqlin生成代码。对于其他优化求解器中的代码生成,请参阅为fmincon生成代码那为QuadProg生成代码那为lsqcurvefit或lsqnonlin生成代码, 要么为fsolve生成代码。
Lsqlin.
金宝app支持使用代码生成使用Codegen.
(MATLAB编码器)功能或者Matlab编码器应用程序。你必须有一个Matlab编码器生成代码的许可证。
目标硬件必须支持标准的双精度浮点计算。金宝app您无法生成单精度或固定点计算的代码。
代码生成目标不使用与Matlab求解器相同的数学内核库。因此,代码生成解决方案可以因求解解决方案而异,特别是对金宝搏官方网站于条件不良问题。
在Matlab中解决不受约束和未定的问题时,Lsqlin.
呼叫莫德利维
,返回基本解决方案。在代码生成中,返回的解决方案具有最小规范,通常不同。
Lsqlin.
不支持金宝app问题
代码生成的参数。
[x,fval] = lsqlin(问题)% 不支持金宝app
全部Lsqlin.
输入矩阵如一种
那AEQ.
那磅
, 和UB.
必须完整,不是稀疏。您可以通过使用稀疏矩阵将稀疏矩阵转换为完整满的
功能。
这磅
和UB.
参数必须具有与列数相同的条目C
或者必须是空的[]
。
对于涉及嵌入式处理器的高级代码优化,您还需要嵌入式编码器®执照。
您必须包含选项Lsqlin.
并使用它指定它们优化选择
。选项必须包括算法
选项,设置为'active-set'
。
选项= Optimoptions('lsqlin'那'算法'那'active-set');[x,fval,ExitFlag] = LSQLIN(C,D,A,B,AEQ,BEQ,LB,UB,X0,选项);
代码生成支持这些选项:金宝app
算法
- 必须是'active-set'
约束特许
最大
Objectivelimit.
最优法
StepTolerance.
生成的代码有限错误检查选项。建议更新选项的方法是使用优化选择
,不是点表示法。
opts = Optimoptions('lsqlin'那'算法'那'active-set');选择= Optimoptions(选择,'maxtations',1E4);% 受到推崇的opts.maxIterations = 1E4;% 不建议
不要从文件加载选项。这样做会导致代码生成失败。相反,在代码中创建选项。
如果指定不支持的选项,则在代码生成期间通常会忽略该选项。金宝app有关可靠的结果,仅指定支持的选项。金宝app
缺省情况下,MATLAB环境外部使用的生成代码使用不多线程的线性代数库。因此,此代码可以在MATLAB环境中的代码中运行显着慢。
如果您的目标硬件有多个核心,则可以使用自定义多线程LAPACK和BLAS库来实现更好的性能。要在生成的代码中纳入这些库,请参阅使用Lapack呼叫加快生成的独立代码中的线性代数(MATLAB编码器)。
Lsqlin.
|优化选择
|Quadprog.
|Codegen.
(MATLAB编码器)