exponenta event banner

разделиться

Разделить два 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 ®.

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

свернуть все

Числовой тип вывода, указанный как 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