Main Content

rem

Resto después de una división

Sintaxis

Descripción

ejemplo

r = rem(a,b) devuelve el resto después de dividir a por b, donde a es el dividendo y b es el divisor. Esta función suele recibir el nombre de operación de resto y puede expresarse como r = a - b.*fix(a./b). La función rem sigue la convención de que rem(a,0) es NaN.

Ejemplos

contraer todo

Calcule el resto después de dividir 5 entre 23.

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

Encuentre el resto después de una división de vector de valores enteros y del divisor 3.

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

     1     2     0     1     2

Encuentre el resto después de una división de un grupo de valores enteros, incluidos valores positivos y negativos. Tenga en cuenta que los resultados distintos de cero tienen el mismo signo que el dividendo.

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

    -1    -1     1     0

Encuentre el resto después de una división de varios ángulos utilizando un divisor de 2*pi. Cuando es posible, rem genera resultados enteros exactos compensando los efectos de redondeo de punto flotante.

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

Argumentos de entrada

contraer todo

Dividendo, especificado como escalar, vector, matriz o arreglo multidimensional. a debe ser un arreglo con valor real de cualquier tipo numérico. Las entradas a y b deben ser del mismo tamaño o tener tamaños compatibles (por ejemplo, a es una matriz M por N y b es un escalar o un vector fila 1 por N). Para obtener más información, consulte Tamaños de arreglos compatibles para operaciones básicas.

Si a es un arreglo duration y b es un arreglo numérico, los valores de b se tratan como números de días de 24 horas.

Si una entrada tiene un tipo de datos de valores enteros, la otra entrada debe ser del mismo tipo de datos de valores enteros o un escalar double.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char

Divisor, especificado como escalar, vector, matriz o arreglo multidimensional. b debe ser un arreglo con valor real de cualquier tipo numérico. Las entradas a y b deben ser del mismo tamaño o tener tamaños compatibles (por ejemplo, a es una matriz M por N y b es un escalar o un vector fila 1 por N). Para obtener más información, consulte Tamaños de arreglos compatibles para operaciones básicas.

Si b es un arreglo duration y a es un arreglo numérico, los valores de a se tratan como números de días de 24 horas.

Si una entrada tiene un tipo de datos de valores enteros, la otra entrada debe ser del mismo tipo de datos de valores enteros o un escalar double.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char

Más acerca de

contraer todo

Diferencias entre mod y rem

El concepto de resto después de una división carece de definición única, y las funciones mod y rem calculan una variación distinta cada una. La función mod genera un resultado que es cero o que tiene el mismo signo que el divisor. La función rem genera un resultado que es cero o que tiene el mismo signo que el dividendo.

Otra diferencia es la convención cuando el divisor es cero. La función mod sigue la convención de que mod(a,0) devuelve a, mientras que la función rem sigue la convención de que rem(a,0) devuelve NaN.

Ambas variantes tienen sus utilidades. Por ejemplo, al procesar señales, la función mod resulta útil en el contexto de las señales periódicas, ya que su salida es periódica (con un periodo igual al divisor).

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también