mod

Остаток после деления (по операции с модулем)

Синтаксис

Описание

пример

b = mod(a,m) возвращает остаток после деления a по m, где a - дивиденды и m является делителем. Эта функция часто называется операцией с модулем, которая может быть выражена как b = a - m.*floor(a./m). mod функция следует соглашению, что mod(a,0) возвращает a.

Примеры

свернуть все

Вычислите 23 по модулю 5.

b = mod(23,5)
b = 3

Найдите остаток после деления для вектора из целых чисел и делителя 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 и m должен быть либо одинаковым размером, либо иметь совместимые размеры (для примера, a является M-by- N матрица и m является скаляром или 1-by- N вектор-строка). Для получения дополнительной информации см. «Совместимые размеры массивов для основных операций».

Если a является duration массив и m является числовым массивом, затем значениями в m рассматриваются как числа 24-часовых дней.

Если один вход имеет целочисленный тип данных, то другой вход должен быть того же целочисленного типа данных или быть скаляром double.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char

Делитель, заданный как скалярный, векторный, матричный или многомерный массив. m должен быть вещественным массивом любого числового типа. Входные параметры a и m должен быть либо одинаковым размером, либо иметь совместимые размеры (для примера, a является M-by- N матрица и m является скаляром или 1-by- 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 функция создает результат, который либо равен нулю, либо имеет тот же знак, что и делитель. 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] Knuth, Donald E. The Art of Computer Programming. Том 1. Эддисон Уэсли, 1997 стр. 39-40.

Расширенные возможности

.

См. также

Представлено до R2006a