разделиться

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

Синтаксис

c = divide(T,a,b)

Описание

пример

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
      u80,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 имеет тип данных Fixed fi, и любые из входных параметров имеют типы данных с плавающей запятой 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Тип данных Объекта numerictype 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