主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

optim.coder.infbound

对代码生成的边界支持

自 R2022b 起

说明

bnd = optim.coder.infbound 创建用于代码生成的无限边界。bnd 表示不支持 Inf 的代码生成目标的无限边界。

bnd = optim.coder.infbound(sz) 返回与参量 sz 大小相同的无限边界数组。如果 sz 是标量,则返回数组的大小为 szxsz

示例

bnd = optim.coder.infbound(n1,n2,...,nt) 返回一个大小为 n1xn2x...xnt 的无限边界数组,包含标量值 n1n2、…、nt

示例

bnd = optim.coder.infbound(___,typename) 为任何先前的语法指定 bnd 的数据类型(类)。

示例

bnd = optim.coder.infbound(___,"like",p) 指定 bnd 具有与数字变量 p 相同的数据类型。

示例

示例

全部折叠

用于代码生成的目标硬件并不总是接受 Inf 或 – Inf 作为边界。在这种情况下,使用 optim.coder.infbound 来表示无限边界。

例如,假设您的问题的上界为 [Inf,1,10],即 x(2) <= 1x(3) <= 10,而 x(1) 没有上界。该问题的下界也是 [0,Inf,0],即 x(1) >= 0x(3) >= 0,而 x(2) 没有下界。您可以使用多种方式来表示这些边界。

ub1 = [optim.coder.infbound 1 10]
ub1 = 1×3

   Inf     1    10

lb1 = [0 -optim.coder.infbound 0]
lb1 = 1×3

     0  -Inf     0

% Or
ub = optim.coder.infbound(1,3);
ub(2) = 1;
ub(3) = 10
ub = 1×3

   Inf     1    10

lb = -optim.coder.infbound([1,3]);
lb(1) = 0;
lb(3) = 0
lb = 1×3

     0  -Inf     0

一些目标硬件仅支持 "single" 数据。使用 typename"like" 语法来生成适当的边界。

ub2 = [optim.coder.infbound("single") single(1) single(10)]
ub2 = 1×3 single row vector

   Inf     1    10

s0 = single(0);
lb2 = [s0 -optim.coder.infbound("like",s0) s0]
lb2 = 1×3 single row vector

     0  -Inf     0

这些结果是运行 MATLAB® 中的代码产生的,并显示 MATLAB Inf 输出。当您运行 optim.coder.infbound 进行代码生成时,生成的边界适合目标硬件。

Copyright 2022–2024 The MathWorks, Inc.

输入参数

全部折叠

返回的 Inf 数组的大小,指定为非负整数向量。一般来说,返回的数组的大小为 sz(1)×sz(2)×...×sz(t),其中 tsz 的分量数量。但是,如果 sz 是标量,则返回数组的大小为 szxsz

如果 sz 中的任何条目为零,则返回的数组为空。

示例: [2,3,1,4]

数据类型: double

Inf 数组分量的大小,指定为非负整数。如果 n 为 0,则返回的数组为空。

示例: 2

数据类型: double

输出数据类型,指定为 "double""single"。如果您使用 Disable Support for Nonfinite Numbers (MATLAB Coder)(例如,通过在关联的代码生成配置对象中将 NonFiniteSupport 设置为 false),则输出条目为 realmax(typename)

您不能同时指定 typename"like",p

目前只有 fmincon 支持单精度代码生成。

数据类型: char | string

输出数据原型,指定为 "double""single" 类的数字变量。如果您使用 Disable Support for Nonfinite Numbers (MATLAB Coder)(例如,通过在关联的代码生成配置对象中将 NonFiniteSupport 设置为 false),则输出条目为 realmax(class(p))

您不能同时指定 typename"like",p

目前只有 fmincon 支持单精度代码生成。

数据类型: char | string

扩展功能

全部展开

版本历史记录

在 R2022b 中推出

全部展开