Visualizzazione dati in virgola fissa
Nel software Fixed-Point Designer™, l’oggetto fipref
determina le proprietà di visualizzazione degli oggetti fi
. Gli esempi di codice mostrano generalmente gli oggetti fi
come appaiano con le seguenti proprietà dell’oggetto fipref
:
NumberDisplay
—'RealWorldValue'
NumericTypeDisplay
—'full'
FimathDisplay
—'full'
Impostando 'FimathDisplay'
su 'full'
fornisce un modo semplice e veloce per distinguere tra gli oggetti fi
con un fimath locale e quelli che sono associati al fimath predefinito. Quando 'FimathDisplay'
è impostato su 'full'
, MATLAB® visualizza le proprietà degli oggetti fimath
solo per gli oggetti fi
con un fimath locale. MATLAB non visualizza mai le proprietà degli oggetti fimath
degli oggetti fi
che vengono associati al fimath predefinito. Grazie a questa differenza di visualizzazione è possibile stabilire quali sono gli oggetti fi
associati al fimath predefinito, semplicemente guardando l’output.
Inoltre, se non diversamente specificato, gli esempi nella documentazione Fixed-Point Designer utilizzano la seguente configurazione predefinita di fimath:
RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
Per ulteriori informazioni sulle impostazioni di visualizzazione, fare riferimento a Set fi Object Display Preferences Using fipref.
Visualizzazione delle proprietà fimath degli oggetti fi
Per vedere come appare l’output nella maggior parte degli esempi di codice Fixed-Point Designer, impostare le proprietà fipref
come segue e creare due oggetti fi
:
p = fipref('NumberDisplay','RealWorldValue',... 'NumericTypeDisplay','full','FimathDisplay','full'); a = fi(pi,'RoundingMethod','Floor','OverflowAction','Wrap') b = fi(pi)
MATLAB restituisce quanto segue:
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 visualizza le proprietà dell’oggetto fimath
nell’output dell’oggetto fi
a
poiché a
ha un fimath locale.
MATLAB non visualizza alcuna proprietà dell’oggetto fimath
nell’output dell’oggetto fi
b
poiché b
si associa al fimath predefinito.
Celamento delle proprietà fimath degli oggetti fi
Se si sta lavorando con più oggetti fi
che hanno fimath locali, può essere utile disattivare la visualizzazione dell’oggetto fimath
:
NumberDisplay
—'RealWorldValue'
NumericTypeDisplay
—'full'
FimathDisplay
—'none'
Ad esempio,
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
Sebbene questa impostazione aiuti a ridurre la quantità di output prodotta, rende anche impossibile definire dall’output se un oggetto fi
utilizza il fimath predefinito. Per farlo, è possibile utilizzare la funzione isfimathlocal
. Ad esempio,
isfimathlocal(a)
ans = logical 1
Quando la funzione isfimathlocal
restituisce 1
, l’oggetto fi
ha un fimath locale. Se la funzione restituisce 0
, l’oggetto fi
utilizza il fimath predefinito.
Abbreviazione della visualizzazione del tipo numerico degli oggetti fi
Per ridurre ulteriormente la quantità di output, è possibile impostare NumericTypeDisplay
su 'short'
. Ad esempio,
p = fipref('NumberDisplay','RealWorldValue',... 'NumericTypeDisplay','short','FimathDisplay','full'); a = fi(pi)
a = 3.1416 numerictype(1,16,13)