Абсолютное значение 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: 8abs возвращает 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: FullPrecisionabs возвращает 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: 15a является комплексным, но численно равняйтесь действительной части, 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: 15numerictype и 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: FullPrecisionfi объект возвращен со значением 1.4142 и заданный numerictype без знака. 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 объект используется для промежуточного вычисления. 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 использование одного из следующих объектов:
fimath объект F если F задан в качестве аргумента.
fimath сопоставленный с a если F не задан в качестве аргумента.
Если вход подписывается, бросьте квадраты re и im к типам без знака.
Добавьте квадраты re и im использование одного из следующих объектов:
fimath объект F если F задан в качестве аргумента.
fimath объект сопоставлен с a если F не задан в качестве аргумента.
Вычислите квадратный корень из суммы, вычисленной на Шаге 4 с помощью sqrt функция со следующими дополнительными аргументами:
numerictype объект T если T задан, или numerictype объект a в противном случае.
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 объект.
Дважды и сложные типы данных не поддерживаются.
fi | fimath | numerictype
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.