Абсолютное значение 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: FullPrecisionA fi возвращен объект со значением 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.