Lavorare con le matrici
Questa sezione presenta altri modi di creare matrici.
Generazione di matrici
MATLAB prevede quattro funzioni che generano matrici di base.
Degli esempi sono:
Z = zeros(2,4)
Z =
0 0 0 0
0 0 0 0
F = 5*ones(3,3)
F =
5 5 5
5 5 5
5 5 5
N = fix(10*rand(1,10))
N =
4 9 4 4 8 5 2 6 8 0
R = randn(4,4)
R =
1.0668 0.2944 -0.6918 -1.4410
0.0593 -1.3362 0.8580 0.5711
-0.0956 0.7143 1.2540 -0.3999
-0.8323 1.6236 -1.5937 0.6900
zeros All zeros
ones All ones
rand Uniformly distributed random elements
randn Normally distributed random elements.
Load
Il comando load legge file binari che contengono matrici, generati da precedenti
sessioni di MATLAB, o legge file di testo contenenti dati numerici.
I file di testo dovrebbero essere organizzati come una tabella rettangolare di numeri,
separata da spazi vuoti con una riga per linea, e un numero uguale di elementi in ciascuna fila.
Per esempio,se al di fuori di MATLAB si crea un file di testo che contiene queste quattro linee:
16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0
Immagazzinando poi il file sotto il nome magik.dat, attraverso il comando
load magik.dat
si legge il file e si crea un variabile, magik, contenente la nostra matrice d'esempio.
M-Files
Si possono creare matrici utilizzando M-files che sono file di testo contenenti
codici MATLAB.Creare un file che contiene lo stesso statement che si desiderava
digitare al prompt di MATLAB.Salvare il file sotto un nome che finisce in .m.
Per accedere ad un editor di testo su un PC o Mac, scegliere OPEN o NEW dal
menu file o pigiare il bottone adatto sul toolbar. Per accedere ad un editor di testo
sotto UNIX, usare il simbolo ! seguito dal comando desiderato.
Per esempio, creiamo un file che contiene queste cinque linee:
A = [...
16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0];
immagazziniamo il file sotto il nome magik.m. Poi digitiamo lo statement
magik
che legge il file e crea un variabile, A, contenente la nostra matrice d'esempio.
Concatenation
Concatenation è il processo di congiunzione di piccole matrici per fare matrici più grandi.
Infatti,la prima matrice è stata creata concatenando i suoi elementi individuali.
La parentesi quadrata, [], è l'operatore della concatenation.
Per un esempio, si parta con la 4-by-4 magic square, A, e si formi:
B = [A A+32; A+48 A+16]
Il risultato è una matrice 8-by-8 , ottenuta congiungendo le quattro submatrici.
B =
16 3 2 13 48 35 34 45
5 10 11 8 37 42 43 40
9 6 7 12 41 38 39 44
4 15 14 1 36 47 46 33
64 51 50 61 32 19 18 29
53 58 59 56 21 26 27 24
57 54 55 60 25 22 23 28
52 63 62 49 20 31 30 17
Questa matrice mostra un altro modo per ottenere una magic square. I suoi elementi sono un
riordinamento dei numeri interi 1:64. le somme delle colonne sono il valore corretto per
una 8-by-8 magic square.
sum(B)
ans =
260 260 260 260 260 260 260 260
Ma la somma delle righe , sum(B ') ', non è la stessa.
Come cancellare Righe e Colonne
Si possono cancellare righe e colonne da una matrice utilizzando solo un paio di
parentesi quadrate. Cominciamo con:
X = A;
Poi, per cancellare la seconda colonna di X, usare:
X(:,2) = []
Questo cambia X in
X =
16 2 13
5 11 8
9 7 12
4 14 1
Se si cancella un singolo elemento da una matrice, il risultato non è più una matrice.
Così,
X(1,2) = []
produce un errore. Comunque,un singolo pedice cancella un singolo elemento,
o sequenza di elementi, e rifoggia gli elementi che rimangono in un
vettore riga. Così
X(2:2:10) = []
risulta in
X =
16 9 2 7 13 12 1.
La Finestra di Comando
Finora, ha usato la linea di comando di MATLAB, digitando comandi e
espressioni, e vedendo i risultati stampati nella finestra di comando.Questa
sezione descrive alcuni modi di alterare l'area della finestra di comando.
Se il suo sistema gli permette di selezionare la fonte per la finestra di comando o
lo stile dei caratteri, noi raccomandiamo di utilizzare una fonte dall'ampiezza fissa,
come Fixedsys o Courier, per fornire una spaziatura corretta.
Il Comando FORMAT
Il comando format controlla la configurazione numerica dei valori esposta da
MATLAB. Il comando regola solamente come i numeri sono esposti, non come
MATLAB li calcola o li salva. Di seguito sono indicati diversi formati, insieme
con l'output che ne deriva, prodotto da un vettore x con componenti di
dimensioni diverse.
x = [4/3 1.2345e-6]
format short
1.3333 0.0000
format short e
1.3333e+000 1.2345e-006
format short g
1.3333 1.2345e-006
format long
1.33333333333333 0.00000123450000
format long e
1.333333333333333e+000 1.234500000000000e-006
format long g
1.33333333333333 1.2345e-006
format bank
1.33 0.00
format rat
4/3 1/810045
format hex
3ff5555555555555 3eb4b6231abfd271 .
Se il più grande elemento di una matrice è più grande di 10^3 o più piccolo di 10^-3,
MATLAB applica un fattore di scala comune per i format short e long.
Inoltre,sopprime molte delle linee bianche che appaiono nell'output.
Questo le lascia vedere più informazioni sullo schermo o finestra.
Se Lei vuole più controllo ,suull'output usi le funzioni sprintf e fprintf.
Eliminazione dell'output a video
Se digita semplicemente uno statement e poi digita RETURN o Enter, MATLAB
automaticamente le mostre i risultati sullo schermo.Se invece finisce la linea con
un punto e virgola, MATLAB compie il calcolo ma non espone alcuno
output. Questo è particolarmente utile quando si generano matrici grandi.
Per esempio:
A = magic(100);
non mostra a video la matrice A.
Linee di Comando lunghe
Se un'asserzione non va bene su una linea, usi tre punti,..., seguiti da
Return o Enter per indicare che l'asserzione continua sulla prossima linea.
Per esempio:
s = 1 -1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7...
- 1/8 + 1/9 - 1/10 + 1/11 - 1/12;
Spazi vuoti intorno a =, +, e - sono opzionali, ma migliorano la leggibilità.
Editing da Linea di comando
Le varie frecce e chiavi di controllo sulla tastiera permettono di richiamare, compilare, e
correggere comandi digitati in precedenza. Per esempio, supponga
di digitare per sbaglio la seguente riga:
rho = (1 + sqt(5)) /2
Lei ha sbagliato l'ortografia di sqrt. MATLAB risponde con:
Undefined function or variable 'sqt'.
Invece di ribattere la linea intera, semplicemente pigi il tasto freccia su.
Il comando errato è in questo modo richiamato e può essere corretto.
Usi le frecce dx e sx per trasportare il cursore su t per inserire la r mancante .
L'uso ripetuto della freccia su richiama le linee digitate in precedenza, digitando un
carattere e poi il tasto freccia su trova una linea precedente che comincia con quel
carattere.
L'elenco dei comando di linea disponibile è diverso a seconda del
computer. Sperimenti quale delle chiavi seguenti è disponibile sulla sua
macchina. (Molte di queste chiavi saranno familiari a utenti di EMACS.)
freccia su oppure ctrl-p -Richiamano linea precedente
freccia giu oppure ctrl-n -Richiamano linea seguente
freccia sx oppure ctrl-b -Trasportano indietro di un carattere
freccia dx oppure ctrl-f -Trasportano in avanti di un carattere
ctrl+freccia dx oppure ctrl-r -Trasportano alla destra della parola
ctrl+freccia sx oppure ctrl-l -Trasportano alla sinistra della parola
home oppure ctrl-a -Porta all'inizio della linea
end oppure ctrl-e -Porta alla fine della linea
esc oppure ctrl-u -Ripulisce la linea
del oppure ctrl-d -Cancellano il carattere sul cursore
backspace oppure ctrl-h -Cancellano carattere dopo il cursore
ctrl-k -Cancella fino alla fine della linea.