Остаток после деления (операция по модулю)
b = mod (a, m)Найти остаток после деления для вектора целых чисел и делителя 3.
a = 1:5; m = 3; b = mod(a,m)
b = 1×5
1 2 0 1 2
Найдите остаток после деления для набора целых чисел, включая как положительные, так и отрицательные значения. Обратите внимание, что ненулевые результаты всегда являются положительными, если делитель является положительным.
a = [-4 -1 7 9]; m = 3; b = mod(a,m)
b = 1×4
2 2 1 0
Найдите остаток после деления на отрицательный делитель для набора целых чисел, включающих как положительные, так и отрицательные значения. Обратите внимание, что ненулевые результаты всегда отрицательные, если делитель отрицательный.
a = [-4 -1 7 9]; m = -3; b = mod(a,m)
b = 1×4
-1 -1 -2 0
Найти остаток после деления для нескольких углов, используя модуль 2*pi. Обратите внимание, что mod попытки компенсировать эффекты округления с плавающей запятой для получения точных целочисленных результатов, когда это возможно.
theta = [0.0 3.5 5.9 6.2 9.0 4*pi]; m = 2*pi; b = mod(theta,m)
b = 1×6
0 3.5000 5.9000 6.2000 2.7168 0
a - ДивидендыДеление, определяемое как скаляр, вектор, матрица или многомерный массив. a должен быть массивом вещественных значений любого числового типа. Исходные данные a и m должны иметь одинаковый размер или совместимые размеры (например, a является Mоколо-N матрица и m является скаляром или 1около-N вектор строки). Дополнительные сведения см. в разделе Совместимые размеры массивов для основных операций.
Если a является duration массив и m является числовым массивом, то значения в m обрабатывают как количество 24-часовых дней.
Если один вход имеет целочисленный тип данных, то другой вход должен быть того же целого типа данных или быть скалярным double.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char
m - ДелительДелитель, заданный как скаляр, вектор, матрица или многомерный массив. m должен быть массивом вещественных значений любого числового типа. Исходные данные a и m должны иметь одинаковый размер или совместимые размеры (например, a является Mоколо-N матрица и m является скаляром или 1около-N вектор строки). Дополнительные сведения см. в разделе Совместимые размеры массивов для основных операций.
Если m является duration массив и a является числовым массивом, то значения в a обрабатывают как количество 24-часовых дней.
Если один вход имеет целочисленный тип данных, то другой вход должен быть того же целого типа данных или быть скалярным double.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char
Понятие остатка после деления не определено однозначно, и две функции mod и rem каждый вычисляет различную вариацию. mod функция дает результат, который либо равен нулю, либо имеет тот же знак, что и делитель. rem функция дает результат, который либо равен нулю, либо имеет тот же знак, что и дивиденды.
Другим отличием является соглашение, когда делитель равен нулю. mod функция следует соглашению, что mod(a,0) прибыль a, тогда как rem функция следует соглашению, что rem(a,0) прибыль NaN.
Оба варианта имеют свое применение. Например, при обработке сигнала mod функция полезна в контексте периодических сигналов, поскольку её выход является периодическим (с периодом, равным делителю).
mod функция полезна для отношений конгруэнтности: a и b являются конгруэнтными (mod m) тогда и только тогда, когда mod(a,m) == mod(b,m). Например, 23 и 13 являются конгруэнтными (mod 5).
[1] Кнут, Дональд Э. Искусство компьютерного программирования. Том 1. Эддисон Уэсли, 1997 pp.39-40.
Эта функция полностью поддерживает массивы tall. Дополнительные сведения см. в разделе Массивы Tall.
Примечания и ограничения по использованию:
Арифметика выполняется с использованием выходного класса. Результаты могут не соответствовать MATLAB ® из-за различий в ошибках округления.
Если один из входов имеет тип int64 или uint64оба входа должны иметь одинаковый тип.
Примечания и ограничения по использованию:
64-разрядные целые числа не поддерживаются.
Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
Эта функция полностью поддерживает распределенные массивы. Дополнительные сведения см. в разделе Запуск функций MATLAB с распределенными массивами (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.