Main Content

mod

Resto después de una división (operación modular)

Sintaxis

Descripción

ejemplo

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

Ejemplos

contraer todo

Calcule 23 módulo 5.

b = mod(23,5)
b = 3

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

a = 1:5;
m = 3;
b = mod(a,m)
b = 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 son siempre positivos si el divisor es positivo.

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

     2     2     1     0

Encuentre el resto después de una división por un divisor negativo de un grupo de valores enteros, incluidos valores positivos y negativos. Tenga en cuenta que los resultados distintos de cero son siempre negativos si el divisor es negativo.

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

    -1    -1    -2     0

Encuentre el resto después de una división de varios ángulos utilizando un módulo de 2*pi. Tenga en cuenta que mod intenta compensar los efectos de redondeo de punto flotante para generar resultados enteros exactos siempre que es posible.

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

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 m deben ser del mismo tamaño o tener tamaños compatibles (por ejemplo, a es una matriz M por N y m 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 m es un arreglo numérico, los valores de m 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. m debe ser un arreglo con valor real de cualquier tipo numérico. Las entradas a y m deben ser del mismo tamaño o tener tamaños compatibles (por ejemplo, a es una matriz M por N y m 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 m 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).

Relaciones de congruencia

La función mod resulta útil para relaciones de congruencia: a y b son congruentes (mod m) únicamente si mod(a,m) == mod(b,m). Por ejemplo, 23 y 13 son congruentes (mod 5).

Referencias

[1] Knuth, Donald E. The Art of Computer Programming. Vol. 1. Addison Wesley, 1997 pp.39–40.

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también