La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
mod
Reste d’une division (opération modulo)
Syntaxe
Description
Exemples
Reste d’une division de scalaire
Reste d’une division de vecteur
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
Reste d’une division de valeurs positives et négatives
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
Reste d’une division pour un diviseur négatif
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
Reste d’une division pour des valeurs en virgule flottante
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
a
— Dividende
scalaire | vecteur | matrice | tableau multidimensionnel | table | timetable
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
m
— Diviseur
scalaire | vecteur | matrice | tableau multidimensionnel | 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
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
Tall arrays
Calculer avec des arrays possédant plus de rangées que la mémoire ne peut en contenir.
Cette fonction supporte entièrement les tall arrays. Pour plus d’informations, consultez Tall array.
Génération de code C/C++
Générez du code C et C++ avec MATLAB® Coder™.
Notes d’usage et limitations :
L’arithmétique est effectuée à l’aide de la classe en sortie. Les résultats pourraient ne pas correspondre à MATLAB® en raison de différences dans les erreurs d’arrondi.
Si l’une des entrées est de type
int64
ouuint64
, les deux entrées doivent être du même type.
Environnement basé sur les threads
Exécutez du code en arrière-plan avec MATLAB® backgroundPool
ou accélérez le code avec Parallel Computing Toolbox™ ThreadPool
.
Cette fonction supporte entièrement les environnements basés sur des threads. Pour plus d’informations, consultez Run MATLAB Functions in Thread-Based Environment.
GPU Arrays
Accélérez le code en exécutant les calculs sur une unité de traitement graphique (GPU) avec Parallel Computing Toolbox™.
Notes d’usage et limitations :
Les nombres entiers 64 bits ne sont pas supportés
Pour plus d’informations, consultez Exécutez les fonctions MATLAB sur un GPU (Parallel Computing Toolbox).
Distributed arrays
Divisez les tableaux volumineux dans la mémoire combinée de votre cluster avec Parallel Computing Toolbox™.
Cette fonction supporte entièrement les distributed arrays. Pour plus d’informations, consultez Exécuter des fonctions MATLAB avec des tableaux distribués (Parallel Computing Toolbox).
Historique des versions
Introduit avant R2006aR2023a: Effectuer des calculs directement dans les tableaux et les timetables
La fonction mod
peut procéder au calcul sur toutes les variables au sein d’un tableau ou d’une timetable sans indexation pour accéder à ces variables. Toutes les variables doivent avoir des types de données qui supportent les calculs. Pour plus d’informations, consultez Direct Calculations on Tables and Timetables.
Voir aussi
Commande MATLAB
Vous avez cliqué sur un lien qui correspond à cette commande MATLAB :
Pour exécuter la commande, saisissez-la dans la fenêtre de commande de MATLAB. Les navigateurs web ne supportent pas les commandes MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)