Main Content

La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.

Visualisation des données à virgule fixe

Dans le software Fixed-Point Designer™, l’objet fipref détermine les propriétés d’affichage des objets fi. Les exemples de code montrent généralement les objets fi comme ils apparaissent avec les propriétés d’objet fipref suivantes :

  • NumberDisplay'RealWorldValue'

  • NumericTypeDisplay'full'

  • FimathDisplay'full'

Le réglage de 'FimathDisplay' à 'full' permet de faire rapidement et facilement la distinction entre les objets fi avec une fimath locale et ceux qui sont associés à la fimath par défaut. Lorsque 'FimathDisplay' est réglé à 'full', MATLAB® affiche les propriétés d'objet fimath pour les objets fi avec une fimath locale. MATLAB n’affiche jamais les propriétés d'objet fimath pour les objets fi associés à la fimath par défaut. En raison de cette différence d'affichage, il vous suffit de regarder la sortie pour savoir si un objet fi est associé à la fimath par défaut.

En outre, sauf indication contraire, les exemples présentés dans toute la documentation Fixed-Point Designer utilisent la configuration par défaut suivante de fimath :

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

Pour plus d’informations sur les réglages de l'affichage, veuillez vous reporter à Set fi Object Display Preferences Using fipref.

Afficher les propriétés fimath des objets fi

Pour voir la sortie telle qu'elle apparaît dans la plupart des exemples de code Fixed-Point Designer, réglez vos propriétés fipref comme suit et créez deux objets fi :

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

MATLAB retourne les informations suivantes :

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

MATLAB affiche les propriétés d'objet fimath dans la sortie de l'objet fi a parce que a dispose d’une fimath locale.

MATLAB n’affiche aucune propriété d’objet fimath dans la sortie de l’objet fi b parce que b s'associe à la fimath par défaut.

Dissimuler les propriétés fimath des objets fi

Si vous travaillez avec plusieurs objets fi disposant de fimath locales, vous pouvez choisir de désactiver l’affichage des objets fimath :

  • NumberDisplay'RealWorldValue'

  • NumericTypeDisplay'full'

  • FimathDisplay'none'

Par exemple,

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

Bien que ce réglage contribue à réduire la quantité de sorties produite, il ne vous permet plus de savoir en regardant la sortie si un objet fi utilise la fimath par défaut. Pour ce faire, vous pouvez utiliser la fonction isfimathlocal. Par exemple,

isfimathlocal(a)
ans =

  logical

   1

Lorsque la fonction isfimathlocal donne 1, cela signifie que l’objet fi a une fimath locale. Si la fonction donne 0, c’est que l’objet fi utilise la fimath par défaut.

Réduire l’affichage numerictype des objets fi

Pour réduire davantage encore la quantité de sorties, vous pouvez régler le NumericTypeDisplay sur 'short'. Par exemple,

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

a = fi(pi)
a = 

    3.1416
      numerictype(1,16,13)