В программном обеспечении Fixed-Point Designer™ объект fipref
определяет свойства отображения объектов fi
. Примеры кода обычно показывают объекты fi
, когда они появляются со следующими свойствами объектов fipref
:
NumberDisplay
— 'RealWorldValue'
NumericTypeDisplay
— 'full'
FimathDisplay
— 'full'
Установка 'FimathDisplay'
к 'full'
обеспечивает быстрый и простой способ дифференцироваться между объектами fi
с локальным fimath и теми, которые сопоставлены со значением по умолчанию fimath. Когда 'FimathDisplay'
установлен в 'full'
, MATLAB® отображает свойства объектов fimath
для объектов fi
с локальным fimath. MATLAB никогда не отображает свойства объектов fimath
для объектов fi
, которые сопоставлены со значением по умолчанию fimath. Из-за этого различия в отображении можно сказать, когда объект fi
сопоставлен со значением по умолчанию fimath только путем рассмотрения вывода.
Кроме того, если в противном случае не задано, примеры в документации Fixed-Point Designer используют следующую настройку по умолчанию fimath:
RoundingMethod: Nearest OverflowAction: Saturate ProductMode: FullPrecision SumMode: FullPrecision
Для получения дополнительной информации о настройках отображения обратитесь к fi Настройкам Отображения объектов Используя fipref.
Чтобы видеть вывод, как это появляется в большинстве примеров кода Fixed-Point Designer, устанавливает ваши свойства fipref
можно следующим образом и создают два объекта fi
:
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
MATLAB отображает свойства объектов fimath
в выводе объекта fi
a
, потому что a
имеет локальный fimath.
MATLAB не отображает свойств объектов fimath
в выводе объекта fi
b
, потому что b
сопоставляет себя со значением по умолчанию fimath.
Если вы работаете с несколькими объектами fi
, которые имеют локальный fimaths, можно хотеть выключить отображение объекта 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 = 1
Когда функция isfimathlocal
возвращает 1
, объект fi
имеет локальный fimath. Если функция возвращает 0
, объект fi
использует значение по умолчанию fimath.
Чтобы уменьшать объем вывода еще больше, можно установить NumericTypeDisplay
на 'short'
. Например,
p = fipref('NumberDisplay','RealWorldValue',... 'NumericTypeDisplay','short','FimathDisplay','full'); a = fi(pi) a = 3.1416 s16,13