MATLAB Language Matrici e matrici


Esempio

In MATLAB, il tipo di dati più semplice è l'array numerico. Può essere uno scalare, un vettore 1-D, una matrice 2-D o un array multidimensionale ND.

% a 1-by-1 scalar value
x = 1;

Per creare un vettore riga, inserisci gli elementi tra parentesi, separati da spazi o virgole:

% a 1-by-4 row vector
v = [1, 2, 3, 4];
v = [1 2 3 4];

Per creare un vettore colonna, separa gli elementi con punto e virgola:

% a 4-by-1 column vector
v = [1; 2; 3; 4];

Per creare una matrice, inseriamo le righe come prima separate da punto e virgola:

% a 2 row-by-4 column matrix
M = [1 2 3 4; 5 6 7 8];

% a 4 row-by-2 column matrix
M = [1 2; ...
     4 5; ...
     6 7; ...
     8 9];

Si noti che non è possibile creare una matrice con dimensioni di riga / colonna non uguali. Tutte le righe devono avere la stessa lunghezza e tutte le colonne devono avere la stessa lunghezza:

% an unequal row / column matrix
M = [1 2 3 ; 4 5 6 7]; % This is not valid and will return an error

% another unequal row / column matrix
M = [1 2 3; ...
     4   5; ...
     6 7 8; ...
     9   10];     % This is not valid and will return an error

Per trasporre un vettore o una matrice, usiamo il .' -operatore, o ' operatore a prendere il suo coniugato ermetico, che è il complesso coniugato della sua trasposizione. Per le matrici reali, questi due sono gli stessi:

% create a row vector and transpose it into a column vector
v = [1 2 3 4].';              % v is equal to [1; 2; 3; 4];

% create a 2-by-4 matrix and transpose it to get a 4-by-2 matrix
M = [1 2 3 4; 5 6 7 8].';     % M is equal to [1 5; 2 6; 3 7; 4 8]

% transpose a vector or matrix stored as a variable
A = [1 2; 3 4];
B = A.';                      % B is equal to [1 3; 2 4]

Per matrici di più di due dimensioni, non esiste una sintassi di linguaggio diretta per inserirle letteralmente. Invece dobbiamo usare le funzioni per costruirle (come ones , zeros , rand ) o manipolando altri array (usando funzioni come cat , reshape , permute ). Qualche esempio:

% a 5-by-2-by-4-by-3 array (4-dimensions)
arr = ones(5, 2, 4, 3);

% a 2-by-3-by-2 array (3-dimensions)
arr = cat(3, [1 2 3; 4 5 6], [7 8 9; 0 1 2]);

% a 5-by-4-by-3-by-2 (4-dimensions)
arr = reshape(1:120, [5 4 3 2]);