English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Array di MATLAB

Tutti i variabili di tutti i tipi di dati in MATLAB sono array multidimensionali. Un vettore è un array unidimensionale, una matrice è un array bidimensionale.

Abbiamo discusso vettori e matrici. In questo capitolo, discuteremo gli array multidimensionali. Ma prima di tutto, parliamo di alcuni tipi speciali di array.

Array speciali in MATLAB

In questa sezione, discuteremo alcune funzioni per creare array speciali. Per tutte queste funzioni, un parametro crea un array quadrato, due parametri creano un array rettangolare.

zeros()La funzione crea un array di zero.

Ad esempio-

zeros(5)

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

ans =
      0  0  0  0  0
      0  0  0  0  0
      0  0  0  0  0
      0  0  0  0  0
      0  0  0  0  0

ones()La funzione crea un array di uno.

Ad esempio-

ones(4, 3)

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

ans =
      1  1  1
      1  1  1
      1  1  1
      1  1  1

eye()La funzione crea una matrice unitaria.

Ad esempio-

eye(4)

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

ans =
      1  0  0  0
      0  1  0  0
      0  0  1  0
      0  0  0  1

rand()La funzione crea un array di numeri casuali distribuiti uniformemente tra 0 e 1.

Ad esempio-

rand(3, 5)

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

ans =
   0.8147  0.9134  0.2785  0.9649  0.9572
   0.9058  0.6324  0.5469  0.1576  0.4854
   0.1270  0.0975  0.9575  0.9706  0.8003

matrice magica

magic squareÈ un quadrato in cui i suoi elementi, sommati per righe, colonne o diagonali, producono lo stesso somma.

magic()La funzione crea una matrice magica. Accetta un parametro singolo, che indica la dimensione del quadrato. Il parametro deve essere un scalare maggiore o uguale a 3.

magic(4)

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

ans =
   16  2  3  13
   5  11  10  8
   9  7  6  12
   4  14  15  1

array multidimensionale

Un array multidimensionale con due o più dimensioni viene chiamato array multidimensionale in MATLAB. Gli array multidimensionali in MATLAB sono un'estensione delle matrici bidimensionali convenzionali.

通常,要生成多维数组,我们首先创建一个二维数组并将其扩展。

Di solito, per generare array multidimensionali, creiamo prima un array bidimensionale e lo espandiamo.

Ad esempio, creiamo un array bidimensionale a.

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

a =
   a = [7 9 5; 6 1 9; 4 3 2]
   7     9     5
   6     1     9

4     3     2arrayaè un array 3x3; possiamo aggiungere la terza dimensione,... fornendo valori simili a questi-

a(:, :, 2) = [1 2 3; 4 5 6; 7 8 9]

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

a =
ans(:,:,1) =
   0   0   0
   0   0   0
   0   0   0
ans(:,:,2) =
   1   2   3
   4   5   6
   7   8   9

Possiamo anche creare un array multidimensionale utilizzando le funzioni ones(), zeros() o rand().

Ad esempio,

b = rand(4,3,2)

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

b(:,:,1) =
   0.0344    0.7952    0.6463
   0.4387    0.1869    0.7094
   0.3816    0.4898    0.7547
   0.7655    0.4456    0.2760
b(:,:,2) =
   0.6797    0.4984    0.2238
   0.6551    0.9597    0.7513
   0.1626    0.3404    0.2551
   0.1190    0.5853    0.5060

Possiamo anche usarecat()funzione per costruire array multidimensionali. Esiste una lista di array connessi lungo la dimensione specificata-

La sintassi della funzione cat() è -

B = cat(dim, A1, A2...)

dove,

  • Bè l'array nuovo creato

  • A1,A2,... sono gli array da concatenare

  • dimè la dimensione su cui si basa la connessione degli array

Esempio

Crea un file script e inserisci il seguente codice-

a = [9 8 7; 6 5 4; 3 2 1];
b = [1 2 3; 4 5 6; 7 8 9];
c = cat(3, a, b, [2 3 1; 4 7 8; 3 9 0])

Quando si esegue il file, viene visualizzato -

c(:,:,1) =
      9     8     7
      6     5     4
      3     2     1
c(:,:,2) =
      1        2        3
      4        5        6
      7        8        9
c(:,:,3) =
      2        3        1
      4     7     8
      3     9     0

Funzioni degli array

MATLAB offre le seguenti funzioni per ordinare, ruotare,置换,整形 o shiftare i contenuti degli array.

funzioneazione
length

lunghezza del vettore o la massima dimensione dell'array

ndimsdimensione dell'array
numelnumero degli elementi dell'array
sizedimensione dell'array
iscolumn

determinazione se l'input è un vettore colonna

isemptydeterminazione se l'array è vuoto
ismatrix

determinazione se l'input è una matrice

isrowdeterminazione se l'input è un vettore riga
isscalardeterminazione se l'input è uno scalare
isvectordeterminazione se l'input è un vettore
blkdiag

costruzione della matrice diagonale di blocco in base ai parametri di input

circshiftshift circolare dell'array
ctransposetrasposta coniugata
diagmatrice diagonale e diagonale della matrice
flipdim

capovolgimento dell'array lungo la dimensione specificata

fliplrcapovolgimento orizzontale della matrice da sinistra a destra
flipudcapovolgimento verticale della matrice
ipermute

inversione delle dimensioni di un array N-D

permute

riordinamento delle dimensioni di un array N-D

repmatcopia e taglio dell'array
reshaperistrutturazione dell'array
rot90rotazione di 90 gradi del matrice
shiftdimspostamento delle dimensioni
issorteddeterminazione se gli elementi della raccolta sono in ordine di sortita
sort

ordinamento degli elementi dell'array in ordine crescente o decrescente

sortrowsordinamento delle righe in ordine crescente
squeezerimozione della dimensione singleton
transposetrasposta
vectorizeespressione vettorializzata

Esempio

Esempi seguenti illustrano alcune delle funzionalità menzionate sopra.

lunghezza, dimensione e numero degli elementi dell'array-

Crea un file script e inserisci il seguente codice-

x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x) % lunghezza del vettore x
y = rand(3, 4, 5, 2);
ndims(y) % numero di dimensioni dell'array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s) % numero di elementi in s

Quando si esegue il file, viene visualizzato il seguente risultato-

ans = 8
ans = 4
ans = 23

circular shift degli elementi dell'array

Crea un file script e inserisci il seguente codice-

a = [1 2 3; 4 5 6; 7 8 9] % array originale a
b = circshift(a,1) % circolare shift dei valori della prima dimensione in giù di 1.
c = circshift(a, [1 -1])        % shift circolare dei valori della prima dimensione in giù di 1 
                           % e secondi valori di dimensione a sinistra % per 1.

Quando si esegue il file, viene visualizzato il seguente risultato-

a =
   1        2        3
   4        5        6
   7        8        9
b =
   7        8        9
   1        2        3
   4        5        6
c =
   8        9        7
   2        3        1
   5        6        4

Array ordinato

Crea un file script e inserisci il seguente codice-

v = [ 23 45 12 9 5 0 19 17]        % vettore orizzontale
sort(v)        % ordinamento di v
m = [2 6 4; 5 3 9; 2 0 1]        % matrice bidimensionale
sort(m, 1)        % ordinamento di m along the row
sort(m, 2)        % ordinamento di m along the column

Quando si esegue il file, viene visualizzato il seguente risultato-

v =
   23       45       12        9        5        0        19        17
ans =
   0        5        9        12        17        19        23        45
m =
   2        6        4
   5        3        9
   2        0        1
ans =
   2        0        1
   2        3        4
   5        6        9
ans =
   2        4        6
   3        5        9
   0        1        2

Array di unità

L'array di unità è un array di celle indiciate, dove ogni cella può contenere array di diverse dimensioni e tipi di dati.

cellLa funzione è utilizzata per creare array di celle. La sintassi della funzione cell è -

C = cell(dim)
C = cell(dim1, ..., dimN)
D = cell(obj)

Spiegazione,

  • Cè l'array di unità;

  • dimè un intero scalare o vettore di interi, utilizzato per specificare le dimensioni dell'array di celle C;

  • dim1, ..., dimNè un intero scalare specificato per la dimensione C;

  • objè uno dei seguenti -

    • Java array o oggetto

    • .NET tipo System.String o System.Object array

Esempio

Crea un file script e inserisci il seguente codice-

c = cell(2, 5);
c = {'Rosso', 'Blu', 'Verde', 'Giallo', 'Bianco'; 1 2 3 4 5}

Quando si esegue il file, viene visualizzato il seguente risultato-

c = 
{
   [1,1] = Rosso
   [2,1] = 1
   [1,2] = Blu
   [2,2] = 2
   [1,3] = Verde
   [2,3] = 3
   [1,4] = Giallo
   [2,4] = 4
   [1,5] = Bianco
   [2,5] = 5
}

Accedi ai dati dell'array di celle

Ci sono due metodi per riferirsi agli elementi di un array di celle-

  • Inserisci gli indici tra parentesi quadre [] per riferirti a un insieme di celle

  • Inserisci gli indici tra graffe {} per riferirti ai dati in una singola cella

Quando metti gli indici tra le prime parentesi, si riferiscono a un insieme di celle.

L'indice dell'array di celle tra parentesi tonde indica un insieme di celle.

Ad esempio-

c = {'Rosso', 'Blu', 'Verde', 'Giallo', 'Bianco'; 1 2 3 4 5}
c(1:2,1:2)

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

ans = 
{
   [1,1] = Rosso
   [2,1] = 1
   [1,2] = Blu
   [2,2] = 2
}

Puoi anche utilizzare l'indice tra parentesi graffe per accedere al contenuto delle celle.

Ad esempio-

c = {'Rosso', 'Blu', 'Verde', 'Giallo', 'Bianco'; 1 2 3 4 5}
c{1, 2:4}

MATLAB eseguirà la seguente istruzione e restituirà il seguente risultato-

ans = Blu
ans = Verde
ans = Giallo