Main Content

setfimath

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

説明

y = setfimath(x,f) は、xnumerictype と値をもち、fimath オブジェクト f が付加されている fi オブジェクト y を返します。この関数および関連する関数 removefimath は、両方のオペランドの embedded.fimath が等しくなければならないというエラーを回避するのにも役立ちます。

構文 y = setfimath(x,f) は入力 x を変更しません。x を変更するには、 x = setfimath(x,f) を使用します。式で setfimath を使用する場合 (a*setfimath(b,f) など)、fimath オブジェクトは一時変数で使用されますが b は変更されません。

すべて折りたたむ

fi オブジェクトを定義して fimath オブジェクトを定義し、setfimath を使用して fimath オブジェクトを fi オブジェクトに追加します。

fimath オブジェクトを含まない fi オブジェクトの作成。

a = fi(pi)
a = 
    3.1416

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

fimath オブジェクトを作成し、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 設定が関数の外部から影響を受けないようにすることができます。このパターンは生成コードでデータのコピーを作成しません。

function y = fixed_point_32bit_KeepLSB_plus_example(a,b)
   f = fimath('OverflowAction','Wrap',...
      'RoundingMethod','Floor',...
      'SumMode','KeepLSB',...
      'SumWordLength',32);
   a = setfimath(a,f);
   b = setfimath(b,f);
   y = a + b;
   y = removefimath(y);
end
 

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

a = fi(0,1,16,15);
b = fi(0,1,16,15);
codegen -config:lib  fixed_point_32bit_KeepLSB_plus_example...
       -args {a,b} -launchreport
     
int fixed_point_32bit_KeepLSB_plus_example(short a, short b)
{
  return a + b;
}

入力引数

すべて折りたたむ

データ型と値を出力にコピーする fi オブジェクトまたは組み込み整数値として指定する入力データです。xfi オブジェクトまたは整数のデータ型 (int8int16int32int64uint8uint16uint32 または uint64) でなければなりません。これ以外の場合は、fimath オブジェクトが適用されません。xfi オブジェクトまたは整数のデータ型でない場合、y = x となります。

出力に付加する既存の fimath オブジェクトとして指定された入力 fimath オブジェクトです。ffimath オブジェクトではない場合、エラーが発生します。

出力引数

すべて折りたたむ

入力 x と同じデータ型と値をもつ fi オブジェクトとして返される出力 fi オブジェクトです。y には fimath オブジェクト f が付加されています。入力 xfi オブジェクトまたは整数のデータ型でない場合、y = x となります。

拡張機能

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

バージョン履歴

R2012b で導入