Main Content

mod

Reste d’une division (opération modulo)

Description

exemple

b = mod(a,m) renvoie le reste d’une division de a par m, où a est le dividende et m le diviseur. Cette fonction, souvent appelée « opération modulo », peut être exprimée ainsi : b = a - m.*floor(a./m). La fonction mod suit la convention selon laquelle mod(a,0) renvoie a.

Exemples

réduire tout

Calculez 23 modulo 5.

b = mod(23,5)
b = 3

Trouvez le reste d’une division d’un vecteur de nombres entiers et du diviseur 3.

a = 1:5;
m = 3;
b = mod(a,m)
b = 1×5

     1     2     0     1     2

Trouvez le reste d’une division pour un jeu de nombres entiers comprenant des valeurs positives et négatives. Notez que les résultats non nuls sont toujours positifs si le diviseur est positif.

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

     2     2     1     0

Trouvez le reste d’une division par un diviseur négatif pour un jeu de nombres entiers comprenant des valeurs positives et négatives. Notez que les résultats non nuls sont toujours négatifs si le diviseur est négatif.

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

    -1    -1    -2     0

Trouvez le reste d’une division pour plusieurs angles à l’aide d’un modulo de 2*pi. Notez que mod tente de compenser les effets d’arrondi en virgule flottante pour produire des résultats entiers et exacts lorsque cela est possible.

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

Arguments d'entrée

réduire tout

Dividende, spécifié sous forme de scalaire, de vecteur, de matrice, de tableau multidimensionnel, de table ou de timetable. a doit être un tableau de valeurs réelles de n’importe quel type numérique. Les entrées a et m doivent être de tailles identiques ou compatibles (par exemple, a est une matrice de dimension M x N et m est un scalaire ou un vecteur ligne de dimension 1 x N). Pour plus d’informations, consultez Compatible Array Sizes for Basic Operations.

Si a est un tableau duration et m un tableau numérique, les valeurs de m sont traitées comme des nombres de journées de 24 heures.

Si le type de données d’une entrée est entier, l’autre doit disposer du même type de données ou être un double scalaire.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char | table | timetable

Diviseur, spécifié sous forme de scalaire, de vecteur, de matrice, de tableau multidimensionnel, de table ou de timetable. m doit être un tableau de valeurs réelles de n’importe quel type numérique. Les entrées a et m doivent être de tailles identiques ou compatibles (par exemple, a est une matrice de dimension M x N et m est un scalaire ou un vecteur ligne de dimension 1 x N). Pour plus d’informations, consultez Compatible Array Sizes for Basic Operations.

Si m est un tableau duration et a un tableau numérique, les valeurs de a sont traitées comme des nombres de journées de 24 heures.

Si le type de données d’une entrée est entier, l’autre doit disposer du même type de données ou être un double scalaire.

Types de données : single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char | table | timetable

En savoir plus

réduire tout

Différences entre mod et rem

Le concept de reste d’une division n’est pas défini de manière unique. Les fonctions mod et rem calculent chacune une variation différente. La fonction mod produit un résultat qui est soit nul, soit du même signe que le diviseur. La fonction rem produit un résultat qui est soit nul, soit du même signe que le dividende.

Autre différence : la convention lorsque le diviseur est nul. La fonction mod suit la convention selon laquelle mod(a,0) renvoie a, tandis que la fonction rem suit la convention selon laquelle rem(a,0) renvoie NaN.

Les deux variantes ont leur utilité. Par exemple, la fonction mod est utile pour le traitement du signal dans le contexte de signaux périodiques, car sa sortie est périodique (période égale au diviseur).

Relations de congruence

La fonction mod est pertinente pour les relations de congruence : a et b sont congruents (mod m) si et seulement si mod(a,m) == mod(b,m). Par exemple, 23 et 13 sont congruents (mod 5).

Références

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

Capacités étendues

Historique des versions

Introduit avant R2006a

développer tout

Voir aussi