English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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.
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
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
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
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
MATLAB offre le seguenti funzioni per ordinare, ruotare,置换,整形 o shiftare i contenuti degli array.
funzione | azione |
---|---|
length | lunghezza del vettore o la massima dimensione dell'array |
ndims | dimensione dell'array |
numel | numero degli elementi dell'array |
size | dimensione dell'array |
iscolumn | determinazione se l'input è un vettore colonna |
isempty | determinazione se l'array è vuoto |
ismatrix | determinazione se l'input è una matrice |
isrow | determinazione se l'input è un vettore riga |
isscalar | determinazione se l'input è uno scalare |
isvector | determinazione se l'input è un vettore |
blkdiag | costruzione della matrice diagonale di blocco in base ai parametri di input |
circshift | shift circolare dell'array |
ctranspose | trasposta coniugata |
diag | matrice diagonale e diagonale della matrice |
flipdim | capovolgimento dell'array lungo la dimensione specificata |
fliplr | capovolgimento orizzontale della matrice da sinistra a destra |
flipud | capovolgimento verticale della matrice |
ipermute | inversione delle dimensioni di un array N-D |
permute | riordinamento delle dimensioni di un array N-D |
repmat | copia e taglio dell'array |
reshape | ristrutturazione dell'array |
rot90 | rotazione di 90 gradi del matrice |
shiftdim | spostamento delle dimensioni |
issorted | determinazione se gli elementi della raccolta sono in ordine di sortita |
sort | ordinamento degli elementi dell'array in ordine crescente o decrescente |
sortrows | ordinamento delle righe in ordine crescente |
squeeze | rimozione della dimensione singleton |
transpose | trasposta |
vectorize | espressione vettorializzata |
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
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
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)
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
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 }
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