最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

coder.Constant クラス

パッケージ: coder
スーパークラス: coder.Type

1 つの MATLAB 値を含むセットを表す

説明

coder.Constant オブジェクトを使用して、コードの生成中に定数となる値を定義します。codegen -args オプションでのみ使用します。生成された MEX 関数に入力として渡さないでください。

構築

const_type=coder.Constant(v) では、値 v から coder.Constant 型が作成されます。

codegen -globals {'g', coder.Constant(v)} は、値 v をもつ定数のグローバル変数 g を作成します。

const_type=coder.newtype('constant', v) では、値 v から coder.Constant 型が作成されます。

入力引数

v

型を作成するのに使用される定数値。

プロパティ

Value

定数の実際の値

コピーのセマンティクス

値。値クラスがコピー操作に与える影響については、オブジェクトのコピー (MATLAB)を参照してください。

すべて折りたたむ

この例では、定数入力をもつ MATLAB® 関数の MEX コードを生成する方法を説明します。ConstantInputs 構成パラメーターを使用して MEX 関数のシグネチャに定数入力を含めるかどうか、また定数入力の値がコンパイル時の値と一致しなければならないかどうかを制御する方法を説明しています。

入力の合計を返す関数 myadd を記述します。

function c = myadd(a,b)
c = a + b;
end

MEX コード生成用の構成オブジェクトを作成します。

mexcfg = coder.config('mex');

定数入力チェックの構成パラメーターの値を見てみましょう。

mexcfg.ConstantInputs
ans =

    'CheckValues'

既定値が設定されています。

MEX 関数 myadd_mex を生成します。最初の引数が double 型のスカラーで、2 番目の引数が値 3 の定数であることを指定します。

codegen myadd -config mexcfg -args {1, coder.Constant(3)}

myadd_mex を呼び出します。2 番目の引数に入力 3 を指定しなければなりません。

myadd_mex(1,3)
ans =

    4

MEX 関数が入力値とコード生成時に指定された値が一致していることをチェックしないように、ConstantInputs を変更します。

mexcfg.ConstantInputs = 'IgnoreValues';

myadd_mex を生成します。

codegen myadd -config mexcfg -args {1, coder.Constant(3)}

3 以外の定数入力値 (たとえば 5) で myadd_mex を呼び出します。

myadd_mex(1,5)
ans =

    4

MEX 関数は入力値 5 を無視します。myadd_mex の生成時に定数引数 b に対して指定した値である 3 が使用されます。

MEX 関数のシグネチャに定数入力の引数が含まれないように ConstantInputs を変更します。

mexcfg.ConstantInputs = 'Remove';

myadd_mex を生成します。

codegen myadd -config mexcfg -args {1, coder.Constant(3)}

myadd_mex を呼び出します。a に対して値 1 を指定します。定数引数 b に対しては値を指定しないでください。

myadd_mex(1)
ans =

    4

この例では、入力が定数値をもつ場合に特化した関数の C コードを生成する方法を説明します。

入力を出力にコピーする関数 identity を記述します。

function y = identity(u) %#codegen
y = u;

C コード生成のコード構成オブジェクトを作成します。

cfg = coder.config('lib');

定数入力 42 をもつ identity の C コードを生成し、レポートを生成します。

codegen identity -config cfg -args {coder.Constant(42)} -report

レポートで、[C コード] タブの identity.c をクリックします。

identity 用の関数シグネチャは、次のとおりです。

double identity(void)

この例では、コンパイル時にグローバル変数の定数値を指定する方法を説明します。

グローバル定数 g の値を返す関数 myfunction を作成します。

function  y = myfunction() %#codegen
global g;

y = g;

end

MEX コード生成用の構成オブジェクトを作成します。

cfg = coder.config('mex');

g が値 5 をもつ定数のグローバル変数であることを宣言する cell 配列 globals を定義します。

globals = {'g', coder.Constant(5)};

-globals オプションを使用してグローバル データを指定し、myfunction の MEX 関数を生成します。

codegen -config cfg -globals globals myfunction

生成された MEX 関数を実行します。

myfunction_mex
ans =

     5

制限

  • スパース行列またはスパース行列を含む構造体、cell 配列、クラスで coder.Constant を使用することはできません。

R2011a で導入