rem

Остаток после деления

Синтаксис

r = rem(a,b)

Описание

пример

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

Примеры

свернуть все

Вычислите остаток после деления 5 в 23.

a = 23;
b = 5;
r = rem(a,b)
r = 3

Найдите остаток после деления для вектора целых чисел и делителя 3.

a = 1:5;
b = 3;
r = rem(a,b)
r = 1×5

     1     2     0     1     2

Найдите остаток после деления для набора целых чисел и включая положительные и включая отрицательные величины. Обратите внимание на то, что ненулевые результаты имеют тот же знак как дивиденд.

a = [-4 -1 7 9];
b = 3;
r = rem(a,b)
r = 1×4

    -1    -1     1     0

Найдите остаток после деления для нескольких углов с помощью делителя 2*pi. Когда возможно, rem пытается привести к точным целочисленным результатам путем компенсации эффектов округления с плавающей точкой.

theta = [0.0 3.5 5.9 6.2 9.0 4*pi];
b = 2*pi;
r = rem(theta,b)
r = 1×6

         0    3.5000    5.9000    6.2000    2.7168         0

Входные параметры

свернуть все

Дивиденд, заданный как скаляр, вектор, матрица или многомерный массив. a должен быть массивом с действительным знаком любого числового типа. Числовые входные параметры a и b должны или быть одного размера или иметь размеры, которые совместимы (например, a является M-by-N матрица, и b является скаляром или 1-by-N вектор - строка). Для получения дополнительной информации см. "Совместимые размеры массивов для основных операций".

Если a и b являются массивами длительности, то они должны быть одного размера, если каждый не скаляр. Если один вход является массивом длительности, другой вход может быть массивом длительности или числовым массивом. В этом контексте rem обрабатывает числовые значения как многие стандартные 24-часовые дни.

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

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

Делитель, заданный как скаляр, вектор, матрица или многомерный массив. b должен быть массивом с действительным знаком любого числового типа. Числовые входные параметры a и b должны или быть одного размера или иметь размеры, которые совместимы (например, a является M-by-N матрица, и b является скаляром или 1-by-N вектор - строка). Для получения дополнительной информации см. "Совместимые размеры массивов для основных операций".

Если a и b являются массивами длительности, то они должны быть одного размера, если каждый не скаляр. Если один вход является массивом длительности, другой вход может быть массивом длительности или числовым массивом. В этом контексте rem обрабатывает числовые значения как многие стандартные 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 полезна в контексте периодических сигналов, потому что его вывод является периодическим (с периодом, равным делителю).

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

Смотрите также

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

Для просмотра документации необходимо авторизоваться на сайте