MATLAB - Operazioni aritmetiche

MATLAB consente due diversi tipi di operazioni aritmetiche:

  • Operazioni aritmetiche su matrici
  • Operazioni aritmetiche su array

Le operazioni aritmetiche delle matrici sono le stesse definite in algebra lineare. Le operazioni sugli array vengono eseguite elemento per elemento, sia su un array unidimensionale che multidimensionale.

Gli operatori di matrice e gli operatori di array sono differenziati dal simbolo del punto (.). Tuttavia, poiché l'operazione di addizione e sottrazione è la stessa per matrici e array, l'operatore è lo stesso per entrambi i casi.

La tabella seguente fornisce una breve descrizione degli operatori:

Sr.No. Operatore e descrizione
1

+

Addizione o plus unario. A + B aggiunge i valori memorizzati nelle variabili A e B. A e B devono avere la stessa dimensione, a meno che uno non sia uno scalare. Uno scalare può essere aggiunto a una matrice di qualsiasi dimensione.

2

-

Sottrazione o meno unario. AB sottrae il valore di B da A. A e B devono avere la stessa dimensione, a meno che uno non sia uno scalare. Uno scalare può essere sottratto da una matrice di qualsiasi dimensione.

3

*

Moltiplicazione di matrici. C = A * B è il prodotto algebrico lineare delle matrici A e B. Più precisamente,

Per A e B non scalari, il numero di colonne di A deve essere uguale al numero di righe di B. Uno scalare può moltiplicare una matrice di qualsiasi dimensione.

4

.*

Moltiplicazione di array. A. * B è il prodotto elemento per elemento degli array A e B. A e B devono avere la stessa dimensione, a meno che uno di essi non sia uno scalare.

5

/

Divisione destra con barra o matrice. B / A è più o meno uguale a B * inv (A). Più precisamente, B / A = (A '\ B') '.

6

./

Array divisione destra. A./B è la matrice con gli elementi A (i, j) / B (i, j). A e B devono avere la stessa dimensione, a meno che uno di essi non sia uno scalare.

7

\

Barra rovesciata o divisione a sinistra della matrice. Se A è una matrice quadrata, A \ B è più o meno uguale a inv (A) * B, tranne per il fatto che è calcolato in modo diverso. Se A è un n-da-n matrice e B è un vettore colonna con n componenti, o una matrice con diversi tali colonne, allora X = A \ B è la soluzione dell'equazione AX = B . Viene visualizzato un messaggio di avviso se A è ridimensionato in modo errato o quasi singolare.

8

.\

Divisione sinistra matrice. A. \ B è la matrice con gli elementi B (i, j) / A (i, j). A e B devono avere la stessa dimensione, a meno che uno di essi non sia uno scalare.

9

^

Potere della matrice. X ^ p è X alla potenza p, se p è uno scalare. Se p è un numero intero, la potenza viene calcolata per quadratura ripetuta. Se il numero intero è negativo, X viene invertito per primo. Per altri valori di p, il calcolo coinvolge autovalori e autovettori, tali che se [V, D] = eig (X), allora X ^ p = V * D. ^ p / V.

10

.^

Potenza array. A. ^ B è la matrice con gli elementi A (i, j) alla potenza B (i, j). A e B devono avere la stessa dimensione, a meno che uno di essi non sia uno scalare.

11

'

Trasposizione della matrice. A 'è la trasposizione algebrica lineare di A. Per matrici complesse, questa è la trasposizione coniugata complessa.

12

.'

Trasposizione di array. UN.' è la trasposizione dell'array di A. Per matrici complesse, ciò non implica la coniugazione.

Esempio

I seguenti esempi mostrano l'uso di operatori aritmetici su dati scalari. Crea un file di script con il codice seguente:

a = 10;
b = 20;
c = a + b
d = a - b
e = a * b
f = a / b
g = a \ b
x = 7;
y = 3;
z = x ^ y

Quando esegui il file, produce il seguente risultato:

c =  30
d = -10
e =  200
f =  0.50000
g =  2
z =  343

Funzioni per operazioni aritmetiche

Oltre ai suddetti operatori aritmetici, MATLAB fornisce i seguenti comandi / funzioni utilizzati per scopi simili:

Sr.No. Descrizione della funzione
1

uplus(a)

Più unario; incrementi dell'importo a

2

plus (a,b)

Più; restituisce a + b

3

uminus(a)

Meno unario; decrementi dell'importo a

4

minus(a, b)

Meno; restituisce a - b

5

times(a, b)

La matrice si moltiplica; restituisce a. * b

6

mtimes(a, b)

Moltiplicazione di matrici; restituisce a * b

7

rdivide(a, b)

Divisione matrice destra; restituisce a ./ b

8

ldivide(a, b)

Divisione array a sinistra; restituisce a. \ b

9

mrdivide(A, B)

Risolvi sistemi di equazioni lineari xA = B per x

10

mldivide(A, B)

Risolvi sistemi di equazioni lineari Ax = B per x

11

power(a, b)

Potenza array; restituisce a. ^ b

12

mpower(a, b)

Potenza della matrice; restituisce a ^ b

13

cumprod(A)

Prodotto cumulativo; restituisce un array della stessa dimensione dell'array A contenente il prodotto cumulativo.

  • Se A è un vettore, allora cumprod (A) restituisce un vettore contenente il prodotto cumulativo degli elementi di A.

  • Se A è una matrice, allora cumprod (A) restituisce una matrice contenente i prodotti cumulativi per ciascuna colonna di A.

  • Se A è un array multidimensionale, allora cumprod (A) agisce lungo la prima dimensione non singleton.

14

cumprod(A, dim)

Restituisce il prodotto cumulativo lungo la dimensione dim .

15

cumsum(A)

Somma cumulativa; restituisce un array A contenente la somma cumulativa.

  • Se A è un vettore, allora cumsum (A) restituisce un vettore contenente la somma cumulativa degli elementi di A.

  • Se A è una matrice, allora cumsum (A) restituisce una matrice contenente le somme cumulative per ciascuna colonna di A.

  • Se A è un array multidimensionale, allora cumsum (A) agisce lungo la prima dimensione non singola.

16

cumsum(A, dim)

Restituisce la somma cumulativa degli elementi lungo la dimensione dim .

17

diff(X)

Differenze e derivate approssimate; calcola le differenze tra elementi adiacenti di X.

  • Se X è un vettore, allora diff (X) restituisce un vettore, un elemento più corto di X, delle differenze tra elementi adiacenti: [X (2) -X (1) X (3) -X (2) ... X (n) -X (n-1)]

  • Se X è una matrice, diff (X) restituisce una matrice di differenze di riga: [X (2: m,:) - X (1: m-1, :)]

18

diff(X,n)

Applica diff ricorsivamente n volte, risultando nell'ennesima differenza.

19

diff(X,n,dim)

È l'ennesima funzione di differenza calcolata lungo la dimensione specificata da dim scalare. Se l'ordine n è uguale o superiore alla lunghezza della dimensione dim, diff restituisce un array vuoto.

20

prod(A)

Prodotto di elementi di matrice; restituisce il prodotto degli elementi dell'array di A.

  • Se A è un vettore, prod (A) restituisce il prodotto degli elementi.

  • Se A è una matrice non vuota, prod (A) tratta le colonne di A come vettori e restituisce un vettore riga dei prodotti di ciascuna colonna.

  • Se A è una matrice vuota 0 per 0, prod (A) restituisce 1.

  • Se A è un array multidimensionale, prod (A) agisce lungo la prima dimensione non singleton e restituisce un array di prodotti. La dimensione di questa dimensione si riduce a 1 mentre le dimensioni di tutte le altre dimensioni rimangono le stesse.

La funzione prod calcola e restituisce B come singolo se l'input, A, è singolo. Per tutti gli altri tipi di dati numerici e logici, prod calcola e restituisce B come double.

21

prod(A,dim)

Restituisce i prodotti lungo la dimensione dim. Ad esempio, se A è una matrice, prod (A, 2) è un vettore colonna contenente i prodotti di ciascuna riga.

22

prod(___,datatype)

moltiplica e restituisce un array nella classe specificata da datatype.

23

sum(A)

  • Somma di elementi dell'array; restituisce somme lungo diverse dimensioni di un array. Se A è in virgola mobile, cioè doppio o singolo, B viene accumulato in modo nativo, cioè nella stessa classe di A, e B ha la stessa classe di A. Se A non è in virgola mobile, B si accumula in doppio e B ha classe doppia.

  • Se A è un vettore, sum (A) restituisce la somma degli elementi.

  • Se A è una matrice, sum (A) tratta le colonne di A come vettori, restituendo un vettore riga delle somme di ciascuna colonna.

  • Se A è un array multidimensionale, sum (A) tratta i valori lungo la prima dimensione non singleton come vettori, restituendo un array di vettori riga.

24

sum(A,dim)

Somma lungo la dimensione di A specificata da scalar dim .

25

sum(..., 'double')

sum(..., dim,'double')

Esegui le aggiunte in doppia precisione e restituisci una risposta di tipo double, anche se A ha un tipo di dati single o un intero. Questa è l'impostazione predefinita per i tipi di dati interi.

26

sum(..., 'native')

sum(..., dim,'native')

Eseguire le aggiunte nel tipo di dati nativo di A e restituire una risposta dello stesso tipo di dati. Questa è l'impostazione predefinita per singola e doppia.

27

ceil(A)

Rotonda verso l'infinito positivo; arrotonda gli elementi di A ai numeri interi più vicini maggiori o uguali ad A.

28

fix(A)

Arrotonda verso zero

29

floor(A)

Rotonda verso l'infinito negativo; arrotonda gli elementi di A ai numeri interi più vicini minori o uguali ad A.

30

idivide(a, b)

idivide(a, b,'fix')

Divisione intera con opzione di arrotondamento; è uguale a a./b tranne per il fatto che i quozienti frazionari sono arrotondati verso zero agli interi più vicini.

31

idivide(a, b, 'round')

I quozienti frazionari vengono arrotondati agli interi più vicini.

32

idivide(A, B, 'floor')

I quozienti frazionari vengono arrotondati verso l'infinito negativo agli interi più vicini.

33

idivide(A, B, 'ceil')

I quozienti frazionari vengono arrotondati verso l'infinito agli interi più vicini.

34

mod (X,Y)

Modulo dopo la divisione; restituisce X - n. * Y dove n = floor (X./Y). Se Y non è un numero intero e il quoziente X./Y rientra nell'errore di arrotondamento di un numero intero, allora n è quel numero intero. Gli ingressi X e Y devono essere array reali della stessa dimensione o scalari reali (purché Y ~ = 0).

Nota:

  • mod (X, 0) è X
  • mod (X, X) è 0
  • mod (X, Y) per X ~ = Y e Y ~ = 0 ha lo stesso segno di Y
35

rem (X,Y)

Resto dopo la divisione; restituisce X - n. * Y dove n = fix (X./Y). Se Y non è un numero intero e il quoziente X./Y rientra nell'errore di arrotondamento di un numero intero, allora n è quel numero intero. Gli ingressi X e Y devono essere array reali della stessa dimensione o scalari reali (purché Y ~ = 0).

Si prega di notare che -

  • rem (X, 0) è NaN
  • rem (X, X) per X ~ = 0 è 0
  • rem (X, Y) per X ~ = Y e Y ~ = 0 ha lo stesso segno di X.
36

round(X)

Arrotonda al numero intero più vicino; arrotonda gli elementi di X ai numeri interi più vicini. Gli elementi positivi con una parte frazionaria di 0,5 arrotondano al numero intero positivo più vicino. Elementi negativi con una parte frazionaria di -0,5 arrotondati per difetto al numero intero negativo più vicino.