Main Content

固定小数点データの表示

Fixed-Point Designer™ ソフトウェアでは、fipref オブジェクトによって fi オブジェクトの表示プロパティが決まります。コード例では通常、次の fipref オブジェクト プロパティを使用して fi オブジェクトを表示します。

  • NumberDisplay'RealWorldValue'

  • NumericTypeDisplay'full'

  • FimathDisplay'full'

'FimathDisplay''full' に設定すると、ローカル fimath をもつ fi オブジェクトと既定の fimath に関連付けられている fi オブジェクトを簡単に区別できます。'FimathDisplay''full' に設定すると、MATLAB® はローカル fimath をもつ fi オブジェクトの fimath オブジェクト プロパティを表示します。既定の fimath に関連付けられている fi オブジェクトの fimath オブジェクト プロパティは、MATLAB では表示されません。この表示の違いにより、出力結果を見るだけで fi オブジェクトがどのような場合に既定の fimath と関連付けられているかどうかが判断できます。

また、特に明記していない限り、Fixed-Point Designer ドキュメンテーションの例では fimath に以下の既定の構成を使用しています。

        RoundingMethod: Nearest
        OverflowAction: Saturate
           ProductMode: FullPrecision
               SumMode: FullPrecision

表示設定の詳細は、fipref を使用した fi オブジェクトの表示基本設定を参照してください。

fi オブジェクトの fimath プロパティの表示

多くの Fixed-Point Designer コード例で出力をそのとおりに表示するには、fipref プロパティを次のように設定し、fi オブジェクトを 2 個作成します。

p = fipref('NumberDisplay','RealWorldValue',... 
'NumericTypeDisplay','full','FimathDisplay','full');
a = fi(pi,'RoundingMethod','Floor','OverflowAction','Wrap')
b = fi(pi)

MATLAB は、以下を返します。

a = 

    3.1415

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

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

b = 

    3.1416

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

a にはローカル fimath があるため、MATLAB は fi オブジェクト a の出力に fimath オブジェクト プロパティを表示します。

b は既定の fimath に関連付けられるため、MATLAB は fi オブジェクト b の出力に fimath オブジェクト プロパティを表示しません。

fi オブジェクトの fimath プロパティの非表示

複数のローカル fimath をもつ複数の fi オブジェクトを使用している場合は、fimath オブジェクトを非表示にすることもできます。

  • NumberDisplay'RealWorldValue'

  • NumericTypeDisplay'full'

  • FimathDisplay'none'

以下に例を示します。

p = fipref('NumberDisplay','RealWorldValue',... 
'NumericTypeDisplay','full','FimathDisplay','none')
p = 

         NumberDisplay: 'RealWorldValue'
    NumericTypeDisplay: 'full'
         FimathDisplay: 'none'
           LoggingMode: 'Off'
      DataTypeOverride: 'ForceOff'
F = fimath('RoundingMethod','Floor','OverflowAction','Wrap');
a = fi(pi, F)
a = 

    3.1415

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

この設定では生成される出力の量を減らすことができますが、fi オブジェクトが既定の fimath を使用しているかどうかは出力から判断できません。その場合は、関数 isfimathlocal を使用します。以下に例を示します。

isfimathlocal(a)
ans =

  logical

   1

関数 isfimathlocal1 を返す場合、fi オブジェクトにはローカル fimath があります。関数が 0 を返す場合、fi オブジェクトは既定の fimath を使用しています。

fi オブジェクトの numerictype 表示の短縮

出力の量をさらに減らすには、NumericTypeDisplay'short' に設定します。以下に例を示します。

p = fipref('NumberDisplay','RealWorldValue',... 
'NumericTypeDisplay','short','FimathDisplay','full');

a = fi(pi)
a = 

    3.1416
      numerictype(1,16,13)