глаз

Создайте единичную матрицу со свойствами фиксированной точки

Синтаксис

I = eye('like',p)
I = eye(n,'like',p)
I = eye(n,m,'like',p)
I = eye(sz,'like',p)

Описание

I = eye('like',p) возвращает скаляр 1 с теми же свойствами фиксированной точки и сложностью (действительный или комплексный) в качестве прототипного аргумента, p. Вывод, I, содержит те же свойства numerictype и fimath как p.

пример

I = eye(n,'like',p) возвращает n-by-n единичная матрица как p, с единицами на основной диагонали и нулях в другое место.

пример

I = eye(n,m,'like',p) возвращает n-by-m единичная матрица как p.

I = eye(sz,'like',p) возвращает массив как p, где вектор размера, sz, задает size(I).

Примеры

свернуть все

Создайте прототипный объект fi, p.

p = fi([],1,16,14);

Создайте единичную матрицу 3 на 4 с теми же свойствами фиксированной точки как p.

I = eye(3,4,'like',p)
I = 
     1     0     0     0
     0     1     0     0
     0     0     1     0

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

Создайте объект fi со знаком с размером слова 16, дробной длиной 15 и набор OverflowAction к Wrap.

format long
p = fi([],1,16,15,'OverflowAction','Wrap');

Создайте единичную матрицу 2 на 2 с теми же свойствами numerictype как p.

X = eye(2,'like',p)
X = 
   0.999969482421875                   0
                   0   0.999969482421875

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

        RoundingMethod: Nearest
        OverflowAction: Wrap
           ProductMode: FullPrecision
               SumMode: FullPrecision

1 не может быть представлен по условию тип p, таким образом, значение насыщает. Объект X вывода fi имеет те же свойства numerictype и fimath как p.

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

свернуть все

Размер первой размерности I, заданного как целочисленное значение.

  • Если n является единственным целочисленным входным параметром, то I является квадратом n-by-n единичная матрица.

  • Если n является 0, то I является пустой матрицей.

  • Если n отрицательно, это эквивалентно n = 0.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размер второго измерения I, заданного как целочисленное значение.

  • Если m является 0, то I является пустой матрицей.

  • Если m отрицателен, то он обработан как 0.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Размер I, заданного как вектор - строка из не больше, чем двух целочисленных значений.

  • Если элементом sz является 0, то I является пустой матрицей.

  • Если элемент sz отрицателен, то элемент обработан как 0.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Моделируйте, заданный как переменная объекта fi или числовая переменная.

Если значение 1 переполнение числовой тип p, вывод насыщает независимо от заданного свойства OverflowAction присоединенного fimath. Все последующие операции, выполняемые на выводе, соблюдают правила присоединенного fimath.

Типы данных: fi | single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Советы

Используя синтаксис b = cast(a,'like',p), чтобы задать типы данных отдельно от кода алгоритма позволяет вам:

  • Снова используйте свой код алгоритма с различными типами данных.

  • Сохраните свой алгоритм ненарушенным спецификациями типа данных и операторами switch для различных типов данных.

  • Улучшите удобочитаемость своего кода алгоритма.

  • Переключитесь между фиксированной точкой и типами данных с плавающей точкой, чтобы сравнить базовые линии.

  • Переключитесь между изменениями настроек фиксированной точки, не изменяя код алгоритма.

Представленный в R2015a