Main Content

globalfimath

グローバル fimath を構成して、ハンドル オブジェクトを返す

構文

G = globalfimath
G = globalfimath('PropertyName1',PropertyValue1,...)
G = globalfimath(f)

説明

G = globalfimath は、グローバル fimath にハンドル オブジェクトを返します。グローバル fimath は fimath オブジェクトとプロパティが同一ですが、グローバルに適用されます。

G = globalfimath('PropertyName1',PropertyValue1,...) は、指定したプロパティとそれに対応する値を使用して、グローバル fimath を設定します。この構文で指定しないプロパティは、現在のグローバル fimath の値に自動的に設定されます。

G = globalfimath(f) は、入力 fimath オブジェクト f のプロパティと一致するようにグローバル fimath のプロパティを構成し、これにハンドル オブジェクトを返します。

以前のリリースでは、関数 saveglobalfimathpref を使用してグローバル fimath の設定を MATLAB® の基本設定に保存しない限り、関数 globalfimath で設定したグローバル fimath のプロパティは現在の MATLAB セッションのみに適用されていました。MATLAB のセッションごとに既定の fimath の設定が使用されるようにするため、MATLAB の基本設定からグローバル fimath を削除することをお勧めします。グローバル fimath を削除するには、関数 removeglobalfimathpref を使用します。

すべて折りたたむ

関数 globalfimath を使用してグローバル fimath を設定、変更およびリセットします。

fimath オブジェクトを作成してグローバル fimath として使用します。

G = globalfimath('RoundMode','Floor','OverflowMode','Wrap')
G = 
        RoundingMethod: Floor
        OverflowAction: Wrap
           ProductMode: FullPrecision
               SumMode: FullPrecision

新しい既定の設定を使用して別の fimath オブジェクトを作成します。

F1 = fimath
F1 = 
        RoundingMethod: Floor
        OverflowAction: Wrap
           ProductMode: FullPrecision
               SumMode: FullPrecision

グローバル fimath に関連付けられた fi オブジェクト A を作成します。

A = fi(pi)
A = 
    3.1416

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

ここで、グローバル fimath の "SumMode" プロパティを "KeepMSB" に設定し、現在のグローバル fimath の他のプロパティ値をすべて維持します。

G = globalfimath('SumMode','KeepMSB')
G = 
        RoundingMethod: Floor
        OverflowAction: Wrap
           ProductMode: FullPrecision
               SumMode: KeepMSB
         SumWordLength: 32
         CastBeforeSum: true

ハンドル オブジェクト G を直接操作してグローバル fimath を変更します。

G.ProductMode = 'SpecifyPrecision'
G = 
        RoundingMethod: Floor
        OverflowAction: Wrap
           ProductMode: SpecifyPrecision
     ProductWordLength: 32
 ProductFractionLength: 30
               SumMode: KeepMSB
         SumWordLength: 32
         CastBeforeSum: true

G に対してリセット メソッドを呼び出し、グローバル fimath を出荷時の既定の設定にリセットします。これは関数 resetglobalfimath を使用するのと同じことです。

reset(G);
G
G = 
        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

ヒント

常に同じ fimath の設定を使用し、他のユーザーとコードを共有していない場合、関数 globalfimath を使用して、これらの設定を迅速かつ簡単に構成できます。ただし、他のユーザーとコードを共有する場合、関数 fiaccel を使用してアルゴリズムを高速化する場合、またはアルゴリズムから C コードを生成する場合は、以下の代替方法を考慮してください。

目的globalfimath 使用時の問題点解決法

コードの共有

異なったグローバル fimath の設定を使用しているユーザーとコードを共有すると、他のユーザーは異なる結果を得る場合があります。

データ型テーブルを使用してアルゴリズムから fimath プロパティを分離します。詳細は、データ型定義のアルゴリズムからの分離を参照してください。

fiaccel を使用したアルゴリズムの高速化または codegen を使用した MATLAB アルゴリズムからの C コードの生成

アルゴリズム内では globalfimath を使用できません。ある globalfimath の設定でコードを生成し、そのコードを別の globalfimath の設定で実行すると、結果が変化する可能性があります。詳細については、MEX 関数に対する既定の fimath 値の指定を参照してください。

コードを生成するアルゴリズム内でデータ型テーブルを使用します。これにより、グローバル設定に影響されなくなり、コードが移植可能になります。詳細は、データ型定義のアルゴリズムからの分離を参照してください。

バージョン履歴

R2010a で導入