Main Content

rem

Resto dopo la divisione

Sintassi

Descrizione

esempio

r = rem(a,b) restituisce il resto dopo la divisione di a per b, dove a è il dividendo e b è il divisore. Questa funzione è spesso chiamata operazione di resto che può essere espressa come r = a - b.*fix(a./b). La funzione rem segue la convenzione che rem(a,0) sia NaN.

Esempi

comprimi tutto

Calcolare il resto dopo aver diviso 5 per 23.

a = 23;
b = 5;
r = rem(a,b)
r = 3

Trovare il resto dopo la divisione per un vettore di numeri interi e il divisore 3.

a = 1:5;
b = 3;
r = rem(a,b)
r = 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 non zero hanno lo stesso segno del dividendo.

a = [-4 -1 7 9];
b = 3;
r = rem(a,b)
r = 1×4

    -1    -1     1     0

Trovare il resto dopo la divisione per diversi angoli utilizzando un divisore di 2*pi. Quando possibile, rem cerca di produrre risultati interi esatti compensando gli effetti di arrotondamento in virgola mobile.

theta = [0.0 3.5 5.9 6.2 9.0 4*pi];
b = 2*pi;
r = rem(theta,b)
r = 1×6

         0    3.5000    5.9000    6.2000    2.7168         0

Argomenti di input

comprimi tutto

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 b devono avere la stessa dimensione o dimensioni compatibili (ad esempio, a è una matrice M x N e b è uno scalare o un vettore riga di 1 x N). Per maggiori informazioni, vedere Compatible Array Sizes for Basic Operations.

Se a è un array di duration e b è un array numerico, i valori in b 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. b deve essere un array di valori reali di qualsiasi tipo numerico. Gli input a e b devono avere la stessa dimensione o dimensioni compatibili (ad esempio, a è una matrice M x N e b è uno scalare o un vettore riga di 1 x N). Per maggiori informazioni, vedere Compatible Array Sizes for Basic Operations.

Se b è 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

comprimi tutto

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).

Funzionalità estese

Cronologia versioni

Introduzione prima di R2006a

espandi tutto

Vedi anche