Абсолютное значение fi
объект
возвращает абсолютное значение y
= abs(a
)fi
a объекта
с тем же numerictype
объект как a
. Промежуточные величины вычисляются с помощью fimath
связана с a
. Область выхода fi
объект, y
, имеет ту же локальную fimath
как a
.
возвращает y
= abs(a
,T
)fi
объект со значением, равным абсолютному значению a
и numerictype
T объекта
. Промежуточные величины вычисляются с помощью fimath
связана с a
и выходные fi
y объекта
имеет ту же локальную fimath
как a
. См. Раздел «Правила распространения типов данных»
возвращает y
= abs(a
,T
,F
)fi
объект со значением, равным абсолютному значению a
и numerictype
T объекта
. Промежуточные величины вычисляются с помощью fimath
F объекта
. Область выхода fi
объект, y
, не имеет локальной fimath
. См. Раздел «Правила распространения типов данных»
Этот пример показывает различие между результатами абсолютного значения для наиболее отрицательного значения, представимого типом данных со знаком, когда 'OverflowAction'
для свойства задано значение 'Saturate'
или 'Wrap'
.
Вычислим абсолютное значение, когда 'OverflowAction'
установлено значение по умолчанию 'Saturate'
.
P = fipref('NumericTypeDisplay','full',... 'FimathDisplay','full'); a = fi(-128) y = abs(a)
a = -128 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 8 y = 127.9961 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 8
abs
возвращает 127.9961
, что является результатом насыщения до максимального положительного значения.
Вычислим абсолютное значение, когда 'OverflowAction'
установлено в 'Wrap'
.
a.OverflowAction = 'Wrap'
y = abs(a)
a = -128 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 8 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision y = -128 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 8 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
abs
возвращает 128
, что является результатом переноса назад к наиболее отрицательному значению.
fi
Исходные данныеЭтот пример показывает различие между результатами абсолютных значений для комплексных и вещественных fi
входы, которые имеют самое отрицательное значение, представимое типом данных со знаком, когда 'OverflowAction'
для свойства задано значение 'Wrap'
.
Задайте сложную fi
объект.
re = fi(-1,1,16,15); im = fi(0,1,16,15); a = complex(re,im)
a = -1.0000 + 0.0000i DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 15
a
является комплексным, но численно равным вещественной части, re
.
Вычислим абсолютное значение комплексного fi
объект.
y = abs(a,re.numerictype,fimath('OverflowAction','Wrap'))
y = 1.0000 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 15
Вычислим абсолютное значение реального fi
объект.
y = abs(re,re.numerictype,fimath('OverflowAction','Wrap'))
y = -1 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 15
numerictype
и fimath
Входы для управления результатом abs
для действительных входовВ этом примере показано, как задать numerictype
и fimath
объекты как необязательные аргументы для управления результатом abs
функция для действительных входов. Когда вы задаете fimath
объект как аргумент, который fimath
объект используется для вычисления промежуточных величин и полученных fi
объект не имеет локальной fimath
.
a = fi(-1,1,6,5,'OverflowAction','Wrap'); y = abs(a)
y = -1 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 6 FractionLength: 5 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
Возвращенный выход идентичен входу. Это может быть нежелательным, потому что абсолютное значение ожидается положительным.
F = fimath('OverflowAction','Saturate'); y = abs(a,F)
y = 0.9688 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 6 FractionLength: 5
Возвращенный fi
объект насыщается до значения 0.9688
и имеет ту же numerictype
объект как вход.
Потому что выход abs
всегда ожидается, что он будет положительным, беззнаковым numerictype
может быть задано для выхода.
T = numerictype(a.numerictype, 'Signed', false);
y = abs(a,T,F)
y = 1 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 6 FractionLength: 5
Установка неподписанного numerictype
обеспечивает лучшую точность.
numerictype
и fimath
Входы для управления результатом abs
для комплексных входовВ этом примере показано, как задать numerictype
и fimath
объекты как необязательные аргументы для управления результатом abs
функция для комплексных входов.
Задайте numerictype
введите и вычислите абсолютное значение a
.
a = fi(-1-i,1,16,15,'OverflowAction','Wrap'); T = numerictype(a.numerictype,'Signed',false); y = abs(a,T)
y = 1.4142 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 16 FractionLength: 15 RoundingMethod: Nearest OverflowAction: Wrap ProductMode: FullPrecision SumMode: FullPrecision
A fi
объект возвращается со значением 1.4142
и указанный беззнаковый numerictype
. The fimath
используется для промежуточного вычисления и fimath
выходных выходов те же, что и входов.
Теперь задайте fimath
объект отличается от объекта a
.
F = fimath('OverflowAction','Saturate','SumMode',... 'KeepLSB','SumWordLength',a.WordLength,... 'ProductMode','specifyprecision',... 'ProductWordLength',a.WordLength,... 'ProductFractionLength',a.FractionLength); y = abs(a,T,F)
y = 1.4142 DataTypeMode: Fixed-point: binary point scaling Signedness: Unsigned WordLength: 16 FractionLength: 15
Заданное fimath
объект используется для промежуточного вычисления. The fimath
сопоставлен с выходом по умолчанию fimath
.
a
- Входные fi
массивВходные fi
массив, заданный как скалярный, векторный, матричный или многомерный массив.
abs
поддерживает только fi
объекты с тривиальным масштабированием [Смещение Откоса], то есть, когда смещение 0
и дробный уклон 1
.
abs
использует другой алгоритм для действительных и сложных входов. Для получения дополнительной информации см. «Абсолютное значение».
Типы данных: fi
Поддержка комплексного числа: Да
T
— numerictype
от выходаnumerictype
объектnumerictype
от выхода fi
y объекта
, заданный как numerictype
объект. Для получения дополнительной информации см. раздел «Правила распространения типов данных».
Пример: T = numerictype(0,24,12,'DataType','Fixed')
F
- Математические настройки с фиксированной точкой для использованияfimath
объектМатематические настройки с фиксированной точкой для вычисления абсолютного значения, заданные как fimath
объект.
Пример: F = fimath('OverflowAction','Saturate','RoundingMethod','Convergent')
Абсолютное значение вещественного числа является соответствующим неотрицательным значением, которое игнорирует знак.
Для действительного входа, a
, абсолютное значение, y
является:
y = a если a >= 0 | (1) |
y = - a если a < 0 | (2) |
abs(-0)
возвращает 0
.
Примечание
Когда fi
a объекта
является реальным и имеет тип данных со знаком, абсолютное значение наиболее отрицательного значения проблематично, поскольку оно не представимо. В этом случае абсолютное значение достигает наиболее положительного значения, представимого типом данных, если 'OverflowAction'
для свойства задано значение 'Saturate'
. Если 'OverflowAction'
является 'Wrap'
абсолютное значение самого отрицательного значения не имеет никакого эффекта.
Для комплексного входа, a
, абсолютное значение, y
, связано с его реальной и мнимой частями следующим образом:
y = sqrt(real(a)*real(a) + imag(a)*imag(a)) | (3) |
abs
функция вычисляет абсолютное значение комплексного входа, a
, следующим образом:
Вычислим действительную и мнимую части a
.
re = real(a) | (4) |
im = imag(a) | (5) |
Вычислите квадраты re
и im
использование одного из следующих объектов:
The fimath
F объекта
если F
задается как аргумент.
The fimath
связана с a
если F
не задан как аргумент.
Если вход подписан, приведите квадраты re
и im
к неподписанным типам.
Добавьте квадраты re
и im
использование одного из следующих объектов:
The fimath
F объекта
если F
задается как аргумент.
The fimath
объект, сопоставленный с a
если F
не задан как аргумент.
Вычислите квадратный корень суммы, вычисленной на шаге 4, используя sqrt
функция со следующими дополнительными аргументами:
The numerictype
T объекта
если T
задан, или numerictype
объект a
в противном случае.
The fimath
F объекта
если F
задан, или fimath
объект, сопоставленный с a
в противном случае.
Примечание
Шаг 3 препятствует отрицательной сумме квадратов действительных и мнимых компонентов. Это важно, потому что если либо re
или im
имеет максимальное отрицательное значение и 'OverflowAction'
для свойства задано значение 'Wrap'
тогда при взятии квадратного корня на шаге 5 произойдет ошибка.
Для синтаксисов, для которых вы задаете numerictype
T объекта
, abs
функция выполняется в соответствии с правилами распространения типов данных, приведенными в следующей таблице. В целом эти правила могут быть суммированы как «типы данных с плавающей точкой распространяются». Это позволяет вам записать код, который может использоваться как с входами с фиксированной точкой, так и с плавающей точкой.
Тип данных Входов fi Объектные a | Тип данных numerictype T объекта | Тип данных Выходов y |
---|---|---|
|
| Тип данных |
|
|
|
|
|
|
|
|
|
Любой |
|
|
Любой |
|
|
Примечание
Когда Signedness
от входа numerictype
T объекта
является Auto
, а abs
функция всегда возвращает Unsigned
fi
объект.
Типы double и комплексные данные не поддерживаются.
fi
| fimath
| numerictype
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.