Main Content

Grandezze di array compatibili per le operazioni di base

La maggior parte degli operatori e delle funzioni binarie (a due input) di MATLAB® supportano array numerici che presentano grandezze compatibili. Due input hanno grandezze compatibili se, per ciascuna dimensione, le grandezze delle dimensioni degli input sono uguali o una di esse è pari a 1. Nei casi più semplici, due grandezze di array sono compatibili se sono esattamente uguali o se una è uno scalare. MATLAB espande implicitamente gli array con grandezze compatibili in modo che abbiano la stessa grandezza durante l'esecuzione dell'operazione o della funzione elemento per elemento.

Input con grandezze compatibili

Input bidimensionali

Queste sono alcune combinazioni di scalari, vettori e matrici che hanno grandezze compatibili:

  • Due input che hanno esattamente la stessa grandezza.

    If A and B are the same size, then the result has the same size.

  • Un input è uno scalare.

    If A is a matrix and B is a scalar, then the result is the same size as A.

  • Un input è una matrice e l'altro è un vettore colonna con lo stesso numero di righe.

    If A is 4-by-2 and B is 4-by-1, then the result is 4-by-2.

  • Un input è un vettore colonna e l'altro è un vettore riga.

    If B is 2-by-1 and A is 1-by-3, then the result is 2-by-3.

Array multidimensionali

Tutti gli array in MATLAB ha dimensioni finali di grandezza 1. Per gli array multidimensionali, questo significa che una matrice 3x4 è uguale a una matrice di grandezza 3x4x1x1x1. Esempi di array multidimensionali con grandezze compatibili sono:

  • Un input è una matrice e l'altro è un array tridimensionale con lo stesso numero di righe e di colonne.

    If A is 3-by-4 and B is 3-by-4-by-2, then the result is 3-by-4-by-2.

  • Un input è una matrice e l'altro è un array tridimensionale. Le dimensioni sono tutte uguali o una di esse è pari a 1.

    If A is 4-by-3 and B is 1-by-3-by-3, then the result is 4-by-3-by-3.

Array vuoti

Le regole sono le stesse per gli array vuoti o per gli array che hanno una grandezza della dimensione pari a zero. La grandezza della dimensione che non è uguale a 1 determina la grandezza dell'output. Questo significa che le dimensioni con una grandezza pari a zero devono essere appaiate con una dimensione di grandezza pari a 1 o pari a 0 nell'altro array e che l'output ha una dimensione pari a 0.

     A: 1-by-0     
     B: 3-by-1
Result: 3-by-0

Input con grandezze non compatibili

Gli input incompatibili hanno grandezze che non possono essere espanse implicitamente fino a diventare della stessa dimensione. Ad esempio:

  • Una delle grandezze della dimensione non è uguale all'altra e nemmeno pari a 1.

    A: 3-by-2
    B: 4-by-2
  • Due vettori riga non scalari di lunghezze diverse.

    A: 1-by-3
    B: 1-by-4

Esempi

Sottrazione di un vettore da una matrice

Per semplificare le operazioni vettore-matrice, utilizzare l'espansione implicita con funzioni dimensionali come sum, mean, min e altre.

Ad esempio, calcolare il valore medio di ciascuna colonna di una matrice, quindi sottrarre il valore medio da ciascun elemento.

A = magic(3)
A =

     8     1     6
     3     5     7
     4     9     2
C = mean(A)
C =

     5     5     5
A - C
ans =

     3    -4     1
    -2     0     2
    -1     4    -3

Aggiunta di un vettore riga e colonna

I vettori riga e colonna hanno grandezze compatibili e quando si esegue un'operazione su di essi il risultato è una matrice.

Ad esempio, aggiungere un vettore riga e colonna. Il risultato equivale a bsxfun(@plus,a,b).

a = [1 2 3 4]
ans =

     1     2     3     4
b = [5; 6; 7]
ans =

     5
     6
     7
a + b
ans =

     6     7     8     9
     7     8     9    10
     8     9    10    11

Vedi anche

Argomenti complementari