Appunti sull uso di matlab - I. Inizializazione di vettori.. Inizializazione di matrici.. Usare gli indici per richiamare gli elementi di un vettore o una matrice.. Richiedere le dimensioni di una matrice o di un vettore 5. Operazioni sui vettori e sulle matrici. Inizializazione di vettori. Inizializare un vettore riga: >> [] Inizializare un vettore colonna: >> [;;;] Convertire un vettore riga in un vettore colonna: >> []; >> Sequenze. Usare i due punti: >> : Sequenze. Usare i due punti per creare sequenze di numeri reali: >> -:0.5: -.0000-0.500.5000.0000 Sequenze. Usare la funzione linspace. linspace con due argomenti per inizio e fine sequenza. La sequenza viene divisa automaticamente in 00 elementi. >> linspace(-,) Columns through -.0000-0.9798-0.9596-0.99...... Columns 97 through 00 0.99 0.9596 0.9798.0000 linspace con tre argomenti per inizio sequenza, fine sequenza, e numero di elementi. >> linspace(-,,) -.0000-0. 0..0000 Inizializazione di matrici. Inizializzare una matrice: >> [ 5 6 0 ] 5 6 0 oppure: [; 5 6; ; 0 ] 5 6 0 La funzione reshape permette di arrotolare un vettore ed ottenere una matrice. Due argomenti: ) un vettore con gli elementi della matrice; ) un vettore di due elementi per definire su quante righe e quante colonne il vettore deve essere ripiegato: >> reshape(linspace(0,,6),[,]) 0 0.667 0.5 0.8000 0.0667 0. 0.6000 0.8667 0. 0.000 0.6667 0.9 0.000 0.667 0.7.0000 Costruzione automatica: La funzione zeros permette di creare matrici di zeri. Due argomenti, numero di righe e numero di colonne : >> zeros(,)
La funzione ones permette di creare matrici di uno. Due argomenti, numero di righe e numero di colonne : >> ones(,) La funzione rand permette di creare matrici di numeri pseudocasuali presi da una distribuzione uniforme. Due argomenti, numero di righe e numero di colonne : >> rand(,) 0.87 0.6 0.9575 0.9058 0.0975 0.969 0.70 0.785 0.576 0.9 0.569 0.9706 La funzione randn è come la funzione rand ma i numeri vengono presi da una distribuzione normale: >> randn(,) 0.75-0. 0.675-0.06.897 -.075 0.77.090 0.77-0.050.7.60 La funzione ee crea una matrice con gli elementi sulla sua diagonale inizializzati a uno e tutti gli altri azero. Prendeunargomentosolo, ilnumerodirighe e colonne (la matrice deve essere quadrata): >> ee() 0 0 0 0 0 0 Usare gli indici per richiamare gli elementi di un vettore o una matrice. Richiamare un singolo elemento di un vettore. Inizializzo un vettore: >> rand(,) >> Richiamo il primo elemento: >> () Inizializzo la variabile a aggiungendo al secondo elemento di : >> a = () +.7577 Richiamare l ultimo elemento di un vettore. Quando non si conosce la lunghezza del vettore, si può usare la parola chiave end : >> (end) Richiamare una sequenza di elementi di un vettore: >> (:) Richiamare una sequenza di elementi di un vettore che arriva all ultimo elemento: >> (:end) Richiamare un sottoinsieme di elementi di un vettore: >> ([ ]) Richiamare un elemento di una matrice. Inizializzo una matrice: >> rand(,) 0.709 0.655 0.9597 0.757 0.66 0.0 0.760 0.90 0.585 0.6797 0.98 0.8 Richiamo l elemento alla riga, colonna della matrice >> w(,) 0.0 Richiamare una sottomatrice: Richiamo la sottomatrice che va dalla a alla a riga e dalla a all ultima colonna. >> w(:,:end) 0.66 0.0 0.90 0.585
Sostituisco a tutti gli elementi della sottomatrice il numero 88: Richiedere le dimensioni di una matrice o di un vettore Richiedere la lunghezza di un vettore con la funzione length: Inizializzo un vettore >> []; >> La funzione length ritorna il numero totale di elementi: >> length() Richiedere la lunghezza di una matrice con la funzione length: Inizializzo una matrice: >> zeros(,5); La funzione length ritorna il numero di colonne: >> length(w) 5 >> w(:,:end) = 88 0.709 0.655 0.9597 0.757 88.0000 88.0000 0.760 88.0000 88.0000 0.6797 0.98 0.8 Richiedere le dimensioni un vettore o di uma matrice con la funzione size. La funzione size ritorna un vettore di due elementi, numero di righe e numero di colonne: >> size(w) 5 Lo stesso avviene per un vettore. In questo caso una delle due dimensioni é ([ n] per un vettore riga e [n ] per un vettore colonna): >> size() *********************************************** I vettori saranno d ora in poi inizializzati sempre come vettori colonna. *********************************************** Operazioni sui vettori e sulle matrici. moltiplicare due vettori elemento per elemento. ogni elemento del primo vettore viene moltiplicato con l elemento del secondo vettore sullo stesso indice. Inizializzo due vettori:
>> =rand(,) 0.75 0.55 0.5060 0.699 >> =rand(,) 0.9 0.575 0.807 0.5 Faccio il prodotto: >>.* 0. 0.0657 0.5 0.778 Lo stesso vale per la divisione (./). prodotto interno. Il risultato è uno scalare che è la somma di ciascun elemento del primo vettore per ciascun elemento del secondo vettore: >> * 0.780 >> % uguale a >> sum(.*) 0.780 prodotto esterno. il risultato è una matrice in cui ciascun elemento è il prodottodi un elementodel primo vettoreperunelemento del secondo vettore. Ad esempio, l elemento alla posizione (,) (riga, colonna ) della matrice risultante è il prodotto dell elemento alla posizione del primo vettore con l elemento alla posizione del secondo vettore. Inizializzo due vettori: >> =rand(,) 0.966 0.5 0.660 0.7 >> =rand(,) 0.57 0.808 0.585 Faccio il prodotto: >> w= * 0.069 0.088 0.66 0.665 0.6 0.086 0.58 0.9 0.5 0.70 0.605 0.770 [ 0.069 0.088 0.66 0.665 0.6 0.086 0.58 0.9 0.5 0.70 0.605 0.770 ]; Uso il vettore dell esempio precedente: [ 0.966 0.5 0.660 0.7 ]; moltiplicando ottengo un vettore delle stesse dimensioni di : >> w* 0.80 0.5859 0.7 Moltiplicare un vettore per una matrice: Uso la matrice dell esempio precedente:
w(,) w(,) w(,) w(,) w, w, w, w, w, w, w, w, w, w, w, w, Prodotto interno w(,:) [ w, w, w, w, ] = w, +w, +w, +w, Prodotto esterno Prodotto matrice vettore = [ ] = w w, w, w, w, w, w, w, w, w, w, w, w, = w, +w, +w, +w, w, +w, +w, +w, w, +w, +w, +w, 5