mod
Reste d’une division (opération modulo)
Syntaxe
Description
Exemples
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
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 Tailles de tableau compatibles pour les opérations de base.
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 Tailles de tableau compatibles pour les opérations de base.
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
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).
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
La fonction mod supporte entièrement les tall arrays. Pour plus d’informations, consultez Tall array.
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
int64ouuint64, les deux entrées doivent être du même type.
Cette fonction supporte entièrement les environnements basés sur des threads. Pour plus d’informations, consultez Run MATLAB Functions in Thread-Based Environment.
La fonction mod supporte entièrement les GPU arrays. Pour exécuter la fonction sur un GPU, spécifiez les données en entrée en tant que gpuArray (Parallel Computing Toolbox). Pour plus d’informations, consultez Exécuter les fonctions MATLAB sur un GPU (Parallel Computing Toolbox).
Cette fonction supporte entièrement les distributed arrays. Pour plus d’informations, consultez Exécuter les fonctions MATLAB avec des tableaux distribués (Parallel Computing Toolbox).
Historique des versions
Introduit avant R2006aLa 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
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.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- 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)