mod
Resto después de una división (operación modular)
Sintaxis
Descripción
Ejemplos
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
Dividendo, especificado como escalar, vector, matriz, arreglo multidimensional, tabla u horario. 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
| table
| timetable
Divisor, especificado como escalar, vector, matriz, arreglo multidimensional, tabla u horario. 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
| table
| timetable
Más acerca de
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).
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
La función mod
es totalmente compatible con los arreglos altos. Para obtener más información, consulte Arreglos altos.
Notas y limitaciones de uso:
Se realizan operaciones aritméticas utilizando la clase de salida. Es posible que los resultados no coincidan con MATLAB® debido a las diferencias en errores de redondeo.
Si una de las entradas es del tipo
int64
ouint64
, ambas entradas deben tener el mismo tipo.
Esta función es totalmente compatible con entornos basados en subprocesos. Para obtener más información, consulte Ejecutar funciones de MATLAB en entornos basados en subprocesos.
La función mod
es totalmente compatible con los arreglos de GPU. Para ejecutar la función en una GPU, especifique los datos de entrada como un gpuArray
(Parallel Computing Toolbox). Para obtener más información, consulte Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Esta función es totalmente compatible con los arreglos distribuidos. Para obtener más información, consulte Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Historial de versiones
Introducido antes de R2006aLa función mod
puede realizar cálculos sobre todas las variables de una tabla u horario sin indexar para acceder a dichas variables. Todas las variables deben tener tipos de datos que admitan el cálculo. Para obtener más información, consulte Direct Calculations on Tables and Timetables.
Consulte también
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Seleccione un país/idioma
Seleccione un país/idioma para obtener contenido traducido, si está disponible, y ver eventos y ofertas de productos y servicios locales. Según su ubicación geográfica, recomendamos que seleccione: .
También puede seleccionar uno de estos países/idiomas:
Cómo obtener el mejor rendimiento
Seleccione China (en idioma chino o inglés) para obtener el mejor rendimiento. Los sitios web de otros países no están optimizados para ser accedidos desde su ubicación geográfica.
América
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)