mod
Il resto dopo la divisione (operazione modulo)
Sintassi
Descrizione
Esempi
Resto dopo la divisione di scalari
Resto dopo la divisione di vettori
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
Resto dopo la divisione di valori positivi e negativi
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
Resto dopo la divisione con divisore negativo
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
Rimanenza dopo la divisione per valori in virgola mobile
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
a
— Dividendo
scalare | vettore | matrice | array multidimensionale | tabella | orario
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
m
— Divisore
scalare | vettore | matrice | array multidimensionale | tabella | orario
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
Differenze tra mod e rem
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).
Relazioni di congruenza
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
Tall array
Esegui calcoli con array che hanno più righe di quelle allocabili in memoria.
Questa funzione supporta completamente i tall array. Per maggiori informazioni, vedere Tall Array.
Generazione di codice C/C++
Genera codice C e C++ con MATLAB® Coder™.
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.
Ambiente basato su thread
Esegui il codice in background usando MATLAB® backgroundPool
oppure accelera il codice con Parallel Computing Toolbox™ ThreadPool
.
Questa funzione supporta completamente gli ambienti basati su thread. Per maggiori informazioni, vedere Run MATLAB Functions in Thread-Based Environment.
Array GPU
Accelera il codice mediante esecuzione su un’unità di elaborazione grafica (GPU) con Parallel Computing Toolbox™.
Note su utilizzo e limitazioni:
I numeri interi a 64 bit non sono supportati.
Per maggiori informazioni, vedere Run MATLAB Functions on a GPU (Parallel Computing Toolbox).
Array distribuiti
Partiziona array di grandi dimensioni nella memoria combinata del cluster con 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 R2006aR2023a: Esecuzione di calcoli direttamente su tabelle e orari
La 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
Comando MATLAB
Hai fatto clic su un collegamento che corrisponde a questo comando MATLAB:
Esegui il comando inserendolo nella finestra di comando MATLAB. I browser web non supportano i comandi 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)