divide

Разделите два fi объекты

Синтаксис

Описание

пример

c = divide(T,a,b) выполняет деление на элементы a элементами b. Результат c имеет числовой тип, заданный как numerictype T объекта.

Примеры

свернуть все

Этот пример показывает, как контролировать точность divide функция.

Создайте беззнаковое fi объект с 80-битным размером слова и 2 ^ -83 масштабированием, что помещает начальный 1 из представления в самый значительный бит. Инициализируйте объект со значением 0,1 и исследуйте двоичное представление.

P = fipref('NumberDisplay', 'bin',...
    'NumericTypeDisplay', 'short',...
    'FimathDisplay', 'none');
a = fi(0.1, 0, 80, 83)
a = 
11001100110011001100110011001100110011001100110011010000000000000000000000000000
      numerictype(0,80,83)

Заметьте, что бесконечное повторяющееся представление обрезается после 52 битов, потому что мантисса стандартного числа с плавающей запятой IEEE ® имеет 52 бита.

Контрастируйте вышесказанное с вычислением 1/10 в арифметике с фиксированной точкой с частным набором на тот же числовой тип, что и ранее.

T = numerictype('Signed', false,...
    'WordLength', 80,...
    'FractionLength', 83);
a = fi(1);
b = fi(10);
c = divide(T, a, b);
c.bin
ans = 
'11001100110011001100110011001100110011001100110011001100110011001100110011001101'

Заметьте, что, когда вы используете divide функция, частное вычисляется до полных 80 бит, независимо от точности a и b. Таким образом, fi c объекта представляет 1/10 точнее, чем может стандартное число с плавающей запятой IEEE ® с двойной точностью.

Входные параметры

свернуть все

Числовой тип выхода, заданный как a numerictype объект.

Числитель, заданный как скалярный, векторный, матричный или многомерный массив.

a и b должны иметь одинаковые размерности, если только он не является скаляром. Если либо a или b скаляром, тогда c имеет размерности нескалярного объекта.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
Поддержка комплексного числа: Да

Знаменатель, заданный как действительный скаляр, вектор, матрица или многомерный массив.

a и b должны иметь одинаковые размерности, если только он не является скаляром. Если либо a или b скаляром, тогда c имеет размерности нескалярного объекта.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | fi
Поддержка комплексного числа: Да

Выходные аргументы

свернуть все

Решение, возвращенное как скалярный, векторный, матричный или многомерный массив. Когда a и b одинаковые размеры, c - те же размерности, что и a и b. Если либо a или b скаляром, тогда c имеет размерности нескалярного объекта.

Алгоритмы

свернуть все

Если a и b являются ли оба fi объекты, c имеет то же fimath объект как a. Если c имеет fi Fixed тип данных, и любой из входов имеет fi типы данных с плавающей точкой, затем fi с плавающей точкой преобразуется в значение с фиксированной точкой. Промежуточные величины вычисляются с помощью fimath объект a.

Если либо a или b является fi объект, а другой - MATLAB® встроенный числовой тип, затем встроенный объект приведен к размеру слова fi объект, сохраняющий лучшую точность длины дроби. Промежуточные величины вычисляются с помощью fimath объект входного fi объект.

Если a и b оба MATLAB встроены в двойной точности, затем c является частным элементом с плавающей точкой a./b, и numerictype T игнорируется.

Правила распространения типов данных

Для синтаксисов, для которых программное обеспечение Fixed-Point Designer™ использует numerictype T объекта, а divide функция выполняется в соответствии с правилами распространения типов данных, приведенными в следующей таблице. В большинстве случаев распространяются типы данных с плавающей точкой. Это позволяет вам записать код, который может использоваться как с входами с фиксированной точкой, так и с плавающей точкой.

Тип данных входных объектов fi a и bТип данных числового типа объекта TТип данных выхода c

Встроенные double

Встроенные double

Любой

Встроенные double

fi Fixed

fi Fixed

fi Fixed

Тип данных numerictype T объекта

fi Fixed

fi Fixed

fi double

fi double

fi Fixed

fi Fixed

fi single

fi single

fi Fixed

fi Fixed

fi ScaledDouble

fi ScaledDouble со свойствами numerictype T объекта

fi double

fi double

fi Fixed

fi double

fi double

fi double

fi double

fi double

fi double

fi double

fi single

fi single

fi double

fi double

fi ScaledDouble

fi double

fi single

fi single

fi Fixed

fi single

fi single

fi single

fi double

fi double

fi single

fi single

fi single

fi single

fi single

fi single

fi ScaledDouble

fi single

fi ScaledDouble

fi ScaledDouble

fi Fixed

Если все входные a или b имеет тип fi ScaledDouble, затем выход cимеет тип fi ScaledDouble со свойствами numerictype T объекта.

fi ScaledDouble

fi ScaledDouble

fi double

fi double

fi ScaledDouble

fi ScaledDouble

fi single

fi single

fi ScaledDouble

fi ScaledDouble

fi ScaledDouble

Если все входные a или b имеет тип fi ScaledDouble, затем выход c имеет тип fi ScaledDouble со свойствами numerictype T объекта.

Расширенные возможности

.

См. также

| | | | | | | |

Представлено до R2006a