Main Content

optim.coder.infbound

コード生成の無限境界サポート

R2022b 以降

説明

bnd = optim.coder.infbound は、コード生成で使用する無限境界を作成します。bndInf をサポートしないコード生成ターゲットの無限境界を表します。

bnd = optim.coder.infbound(sz) は、引数 sz と同じサイズの無限境界配列を返します。sz がスカラーの場合、返される配列のサイズは szsz 列です。

bnd = optim.coder.infbound(n1,n2,...,nt) は、スカラー値 n1n2、...、nt に対して、サイズが n1×n2×...×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) <= 1 および x(3) <= 10 で、x(1) に対しては上限がないものとします。また、この問題の下限は [0,Inf,0]、つまり x(1) >= 0 および x(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 = 1x3 single row vector

   Inf     1    10

s0 = single(0);
lb2 = [s0 -optim.coder.infbound("like",s0) s0]
lb2 = 1x3 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 がスカラーの場合、返される配列のサイズは szsz 列です。

sz のいずれかのエントリがゼロである場合、返される配列は空になります。

例: [2,3,1,4]

データ型: double

Inf 配列成分のサイズ。非負の整数として指定します。n が 0 である場合、返される配列は空になります。

例: 2

データ型: double

出力データ型。"double" または "single" として指定します。非有限数のサポートの無効化 (MATLAB Coder)を行っている場合 (たとえば、関連するコード生成構成オブジェクトで NonFiniteSupportfalse に設定されている場合)、出力のエントリは realmax(typename) になります。

typename"like",p の両方を指定することはできません。

単精度コード生成は、現時点では fmincon でのみサポートされています。

データ型: char | string

出力データ プロトタイプ。クラス "double" または "single" の数値変数として指定します。非有限数のサポートの無効化 (MATLAB Coder)を行っている場合 (たとえば、関連するコード生成構成オブジェクトで NonFiniteSupportfalse に設定されている場合)、出力のエントリは realmax(class(p)) になります。

typename"like",p の両方を指定することはできません。

単精度コード生成は、現時点では fmincon でのみサポートされています。

データ型: char | string

拡張機能

バージョン履歴

R2022b で導入

すべて展開する