mod
Rest nach Division (Modulo-Operation)
Syntax
Beschreibung
Beispiele
Finden Sie den Rest nach einer Division für einen Vektor aus Ganzzahlen mit dem Divisor 3.
a = 1:5; m = 3; b = mod(a,m)
b = 1×5
1 2 0 1 2
Finden Sie den Rest nach einer Division für eine Reihe von Ganzzahlen, einschließlich positiver und negativer Werte. Beachten Sie, dass Nicht-Null-Ergebnisse stets positiv sind, wenn der Divisor positiv ist.
a = [-4 -1 7 9]; m = 3; b = mod(a,m)
b = 1×4
2 2 1 0
Finden Sie den Rest nach einer Division durch einen negativen Divisor für eine Reihe von Ganzzahlen, einschließlich positiver und negativer Werte. Beachten Sie, dass Nicht-Null-Ergebnisse stets negativ sind, wenn der Divisor negativ ist.
a = [-4 -1 7 9]; m = -3; b = mod(a,m)
b = 1×4
-1 -1 -2 0
Finden Sie den Rest nach einer Division für mehrere Winkel mit einem Modulus von 2*pi. Beachten Sie, dass mod versucht, nach Möglichkeit die Rundungseffekte bei Gleitkommazahlen auszugleichen, um präzise ganzzahlige Ergebnisse zu berechnen.
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
Eingabeargumente
Dividend, angegeben als Skalar, Vektor, Matrix, mehrdimensionales Array, Tabelle oder Timetable. a muss ein reellwertiges Array mit beliebigem numerischem Typ sein. Die Eingaben a und m müssen entweder dieselbe Größe oder kompatible Größen aufweise n(a ist beispielsweise eine M-mal-N-Matrix und m ein Skalar oder ein 1-mal-N-Zeilenvektor). Weitere Informationen finden Sie unter Kompatible Arraygrößen für Basisoperationen.
Wenn a ein duration-Array und m ein numerisches Array ist, werden die Werte in m als Anzahl von 24-Stunden-Tagen behandelt.
Wenn eine Eingabe einen Ganzzahl-Datentyp aufweist, muss die andere Eingabe denselben Ganzzahl-Datentyp aufweisen oder ein Skalar double sein.
Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char | table | timetable
Divisor, angegeben als Skalar, Vektor, Matrix, mehrdimensionales Array, Tabelle oder Timetable. m muss ein reellwertiges Array mit beliebigem numerischem Typ sein. Die Eingaben a und m müssen entweder dieselbe Größe oder kompatible Größen aufweisen (a ist beispielsweise eine M-mal-N-Matrix und m ein Skalar oder ein 1-mal-N-Zeilenvektor). Weitere Informationen finden Sie unter Kompatible Arraygrößen für Basisoperationen.
Wenn m ein duration-Array und a ein numerisches Array ist, werden die Werte in a als Anzahl von 24-Stunden-Tagen behandelt.
Wenn eine Eingabe einen Ganzzahl-Datentyp aufweist, muss die andere Eingabe denselben Ganzzahl-Datentyp aufweisen oder ein Skalar double sein.
Datentypen: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration | char | table | timetable
Mehr über
Das Konzept eines Rests nach der Division ist nicht eindeutig definiert und die zwei Funktionen mod und rem berechnen jeweils unterschiedliche Varianten. Die Funktion mod erzeugt ein Ergebnis, das entweder Null ist oder dasselbe Vorzeichen wie der Divisor aufweist. Die Funktion rem erzeugt ein Ergebnis, das entweder Null ist oder dasselbe Vorzeichen wie der Dividend aufweist.
Ein weiterer Unterschied ist die Konvention bei einem Divisor von Null. Die Funktion mod befolgt die Konvention, dass mod(a,0) a zurückgibt; die Funktion rem befolgt die Konvention, dass rem(a,0) NaN zurückgibt.
Beide Varianten haben ihre eigenen Anwendungsfälle. In der Signalverarbeitung ist die Funktion mod beispielsweise im Kontext periodischer Signale nützlich, da ihre Ausgabe periodisch ist (mit einer Periode gleich dem Divisor).
Die Funktion mod ist für Kongruenzbeziehungen nützlich: a und b sind nur kongruent (mod m), wenn mod(a,m) == mod(b,m). Beispielsweise sind 23 und 13 kongruent (mod 5).
Referenzen
[1] Knuth, Donald E. The Art of Computer Programming. Vol. 1. Addison Wesley, 1997 pp.39–40.
Erweiterte Fähigkeiten
Die Funktion mod bietet vollständige Unterstützung für Tall-Arrays. Weitere Informationen finden Sie unter Tall-Arrays.
Hinweise zur Verwendung und Einschränkungen:
Die Arithmetik wird mithilfe der Ausgabeklasse durchgeführt. Die Ergebnisse könnten aufgrund von Unterschieden bei den Rundungsfehlern nicht den MATLAB®-Ergebnissen entsprechen.
Wenn eine der Eingaben den Typ
int64oderuint64aufweist, müssen beide Eingaben denselben Typ aufweisen.
Diese Funktion bietet vollständige Unterstützung für thread-basierte Umgebungen. Weitere Informationen finden Sie unter Run MATLAB Functions in Thread-Based Environment.
Die Funktion mod bietet vollständige Unterstützung für Grafikkarten-Arrays. Zum Ausführen der Funktion auf einer Grafikkarte geben Sie die Eingabedaten als gpuArray (Parallel Computing Toolbox) an. Weitere Informationen finden Sie unter Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Diese Funktion bietet vollständige Unterstützung für verteilte Arrays. Weitere Informationen finden Sie unter Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Versionsverlauf
Eingeführt vor R2006aDie Funktion mod kann die Berechnung mit allen Variablen in einer Tabelle oder einem Timetable ausführen, ohne für den Zugriff auf diese Variablen eine Indizierung zu benötigen. Alle Variablen müssen Datentypen aufweisen, die die Berechnung unterstützen. Weitere Informationen finden Sie unter Direct Calculations on Tables and Timetables.
Siehe auch
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.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- 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)