Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

setfimath

fimath オブジェクトを fi オブジェクトに付加

説明

Y = setfimath(X,F) は、Xnumerictype と値をもち、fimath オブジェクト F が付加されている fi オブジェクト Y を返します。

構文 Y = setfimath(X,F) は入力 X を変更しません。X を変更するには、X = setfimath(X,F) を使用します。これを使用すると、生成コードにデータ コピーを作成せずに fimath の設定をローカルで詳細に制御できます。

式で setfimath を使用する場合 (a*setfimath(b,F) など)、fimath オブジェクトは一時変数で使用されますが b は変更されません。

この関数および関連する関数 removefimath は、両方のオペランドの fimath が等しくなければならないというエラーを回避するのにも役立ちます。

すべて折りたたむ

fi オブジェクトを作成します。

a = fi(pi)
a = 
    3.1416

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

fimath オブジェクトを作成し、setfimath を使用して fi オブジェクトに付加します。

f = fimath('OverflowAction','Wrap','RoundingMethod','Floor');
b = setfimath(a,f)
b = 
    3.1416

          DataTypeMode: Fixed-point: binary point scaling
            Signedness: Signed
            WordLength: 16
        FractionLength: 13

        RoundingMethod: Floor
        OverflowAction: Wrap
           ProductMode: FullPrecision
               SumMode: FullPrecision

この例では、パターン X = setfimath(X,F)Y = removefimath(Y) を使用して、変数の fimath 設定が関数の外部から影響を受けないようにする方法を示します。このパターンは生成コードでデータのコピーを作成しません。

type fixed_point_32bit_KeepLSB_plus_example.m
function y = fixed_point_32bit_KeepLSB_plus_example(a,b)
f = fimath('RoundingMethod', 'Floor', ...
           'OverflowAction', 'Wrap', ...
           'SumMode', 'KeepLSB', ...
           'SumWordLength', 32)

a = setfimath(a,f);
b = setfimath(b,f);

y = a + b;
y = removefimath(y);
end
a = fi(0,1,16,15);
b = fi(0,1,16,15);

MATLAB® Coder™ を使用して C コードを生成できます。この例では、32 ビットのネイティブ整数型をもつコンピューターで C コードを生成します。

codegen -config:lib  fixed_point_32bit_KeepLSB_plus_example...
       -args {a,b} -launchreport
Code generation successful: View report

コード生成レポートでコードをトレースします。

trace-code.png

入力引数

すべて折りたたむ

入力配列。スカラー、ベクトル、行列または多次元配列として指定します。

fimath オブジェクトは、Xfi オブジェクトまたは整数のデータ型の場合に適用されます。それ以外の場合、fimath オブジェクトは適用されず、Y = X となります。

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
複素数のサポート: あり

出力に付加する固定小数点演算の設定。既存の fimath オブジェクトとして指定します。Ffimath オブジェクトでない場合、エラーが発生します。

出力引数

すべて折りたたむ

出力 fi オブジェクト。入力 X と同じデータ型と値をもち、fimath オブジェクト F が付加された fi オブジェクトとして返されます。

入力 Xfi オブジェクトまたは整数のデータ型でない場合、Y = X となります。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2012b で導入