exponenta event banner

globalfimath

Настройка глобального объекта дескриптора fimath и return

Синтаксис

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

Описание

G = globalfimath возвращает объект дескриптора глобальному fimath. Глобальный fimath имеет свойства, идентичные свойствам fimath объект, но применяется глобально.

G = globalfimath('PropertyName1',PropertyValue1,...) задает глобальный fimath с использованием именованных свойств и соответствующих им значений. Свойства, которые не указаны в этом синтаксисе, автоматически устанавливаются как свойства текущего глобального fimath.

G = globalfimath(f) задает свойства глобального fimath, соответствующие свойствам входных данных fimath объект fи возвращает ему объект-дескриптор.

Если в предыдущем выпуске вы не использовали saveglobalfimathpref для сохранения глобальных настроек fimath в настройках MATLAB ®, глобальных свойств fimath, заданных с помощью globalfimath функция применяется только к текущему сеансу MATLAB. Рекомендуется удалить глобальный fimath из настроек MATLAB, чтобы каждый сеанс 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

Создайте объект fi A, связанный с глобальным fimath.

A = fi(pi)
A = 
    3.1416

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

Теперь установите для свойства «SumMode» глобального fimath значение «KeepMSB» и сохраните все остальные значения свойств текущего глобального fimath.

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

Измените глобальный fimath, напрямую взаимодействуя с объектом-дескриптором G.

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

Сбросьте глобальный fimath на заводское значение по умолчанию, вызвав метод reset на G. Это эквивалентно использованию функции resetglobalfimath.

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

Совет

Если вы всегда используете то же самое fimath и вы не предоставляете общий доступ к коду другим пользователям, используя globalfimath функция является быстрым и удобным методом настройки этих параметров. Однако если вы предоставляете код другим пользователям или используете fiaccel чтобы ускорить алгоритм или создать код C для алгоритма, рассмотрим следующие альтернативы.

ЦельПроблема с использованием globalfimathРешение

Поделиться кодом

Если вы предоставляете общий доступ к коду пользователю, использующему другой глобальный код fimath настройки, они могут видеть разные результаты.

Разделите fimath с помощью таблиц типов. Дополнительные сведения см. в разделе Отдельные определения типов данных из алгоритма.

Ускорение алгоритма с помощью fiaccel или сгенерировать код C из алгоритма MATLAB с помощью codegen

Вы не можете использовать globalfimath в рамках этого алгоритма. При создании кода с одним globalfimath установка и запуск с другим globalfimath установка, результаты могут отличаться. Дополнительные сведения см. в разделе Определение значений fimath по умолчанию для функций MEX.

Используйте таблицы типов в алгоритме, из которого требуется создать код. Это изолирует вас от глобальных настроек и делает код переносимым. Дополнительные сведения см. в разделе Отдельные определения типов данных из алгоритма.

См. также

| | | | (кодер MATLAB)

Представлен в R2010a