mod
Il resto dopo la divisione (operazione modulo)
Sintassi
Descrizione
Esempi
Trovare il resto dopo la divisione per un vettore di numeri interi e il divisore 3
.
a = 1:5; m = 3; b = mod(a,m)
b = 1×5
1 2 0 1 2
Trovare il resto dopo la divisione per un insieme di numeri interi che include sia valori positivi che negativi. Si noti che i risultati diversi da zero sono sempre positivi se il divisore è positivo.
a = [-4 -1 7 9]; m = 3; b = mod(a,m)
b = 1×4
2 2 1 0
Trovare il resto dopo la divisione con un divisore negativo per un insieme di numeri interi che include sia valori positivi che negativi. Si noti che i risultati diversi da zero sono sempre negativi se il divisore è negativo.
a = [-4 -1 7 9]; m = -3; b = mod(a,m)
b = 1×4
-1 -1 -2 0
Trovare il resto dopo la divisione per diversi angoli utilizzando un modulo di 2*pi
. Si noti che, quando possibile, mod
cerca di compensare gli effetti dell'arrotondamento in virgola mobile per produrre risultati numeri interi esatti.
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
Argomenti di input
Dividendo, specificato come scalare, vettore, matrice, array multidimensionale, tabella o orario. a
deve essere un array di valori reali di qualsiasi tipo numerico. Gli input a
e m
devono avere la stessa dimensione o dimensioni compatibili (ad esempio, a
è una matrice M
x N
e m
è uno scalare o un vettore riga di 1
x N
). Per maggiori informazioni, vedere Grandezze di array compatibili per le operazioni di base.
Se a
è un array di duration
e m
è un array numerico, i valori in m
sono trattati come numeri di giorni di 24 ore.
Se un input ha un tipo di dato intero, l'altro input deve avere lo stesso tipo di dato intero o essere uno scalare double
.
Tipi di dati: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| duration
| char
| table
| timetable
Divisore, specificato come scalare, vettore, matrice, array multidimensionale, tabella o orario. m
deve essere un array di valori reali di qualsiasi tipo numerico. Gli input a
e m
devono avere la stessa dimensione o dimensioni compatibili (ad esempio, a
è una matrice M
x N
e m
è uno scalare o un vettore riga di 1
x N
). Per maggiori informazioni, vedere Grandezze di array compatibili per le operazioni di base.
Se m
è un array di duration
e a
è un array numerico, i valori in a
sono trattati come numeri di giorni di 24 ore.
Se un input ha un tipo di dato intero, l'altro input deve avere lo stesso tipo di dato intero o essere uno scalare double
.
Tipi di dati: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| duration
| char
| table
| timetable
Ulteriori informazioni
Il concetto di resto dopo la divisione non è definito in modo univoco e le due funzioni mod
e rem
calcolano ciascuna una variazione diversa. La funzione mod
produce un risultato pari a zero o con lo stesso segno del divisore. La funzione rem
produce un risultato pari a zero o con lo stesso segno del dividendo.
Un'altra differenza riguarda la convenzione per cui il divisore è zero. La funzione mod
segue la convenzione che mod(a,0)
restituisce a
, laddove la funzione rem
segue la convenzione che rem(a,0)
restituisce NaN
.
Entrambe le varianti hanno i loro utilizzi. Ad esempio, nell'elaborazione dei segnali, la funzione mod
è utile nel contesto dei segnali periodici perché il suo output è periodico (con periodo uguale al divisore).
La funzione mod
è utile per le relazioni di congruenza: a
e b
sono congruenti (mod m) se e solo se mod(a,m) == mod(b,m)
. Ad esempio, 23 e 13 sono congruenti (mod 5).
Riferimenti
[1] Knuth, Donald E. The Art of Computer Programming. Vol. 1. Addison Wesley, 1997 pp.39–40.
Funzionalità estese
La funzione mod
supporta completamente i tall array. Per maggiori informazioni, vedere Tall Array.
Note su utilizzo e limitazioni:
L'aritmetica viene eseguita utilizzando la classe di output. I risultati potrebbero non corrispondere a MATLAB® a causa delle differenze negli errori di arrotondamento.
Se uno degli input è di tipo
int64
ouint64
, entrambi gli input devono essere dello stesso tipo.
Questa funzione supporta completamente gli ambienti basati su thread. Per maggiori informazioni, vedere Run MATLAB Functions in Thread-Based Environment.
La funzione mod
supporta completamente gli array di GPU. Per eseguire la funzione su una GPU, specificare i dati di input come un gpuArray
(Parallel Computing Toolbox). Per maggiori informazioni, vedere Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Questa funzione supporta completamente gli array distribuiti. Per maggiori informazioni, vedere Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox).
Cronologia versioni
Introduzione prima di R2006aLa funzione mod
può eseguire calcoli su tutte le variabili all’interno di una tabella o di un orario senza dover eseguire indicizzazioni per accedere a tali variabili. Tutte le variabili devono avere tipi di dati che supportino il calcolo. Per maggiori informazioni, vedere Direct Calculations on Tables and Timetables.
Vedi anche
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.
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- 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)