next up previous

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.