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