MATLAB

Da Wikipedia, l'enciclopedia libera.


MATLAB
Sviluppatore MathWorks
Ultima versione R2009a / 6 marzo 2009
SO Cross-platform (lista)
Genere Analisi numerica
Licenza Proprietaria
Sito web Pagina prodotti MATLAB

MATLAB (abbreviazione di Matrix Laboratory) è un ambiente per il calcolo numerico e l'analisi statistica che comprende anche l'omonimo linguaggio di programmazione creato dalla MathWorks. MATLAB consente di manipolare matrici, visualizzare funzioni e dati, implementare algoritmi, creare interfacce utente, e interfacciarsi con altri programmi. Nonostante sia specializzato nel calcolo numerico, un toolbox opzionale interfaccia MATLAB con il motore di calcolo simbolico di Maple. MATLAB è usato da milioni di persone nell'industria, nelle università e funziona su diversi sistemi operativi, tra cui Windows, Mac OS, GNU/Linux e Unix.

Indice

[modifica] Storia

Abbreviazione di "MATrix LABoratory", MATLAB fu creato alla fine degli anni '70 da Cleve Moler, il presidente del dipartimento di scienze informatiche dell'Università del New Mexico. Egli creò MATLAB per dare ai suoi studenti accesso a LINPACK e ad EISPACK senza che essi dovessero conoscere il Fortran. Presto si diffuse nelle altre università e trovò un grande pubblico tra la comunità dei matematici applicati. Jack Little, un ingegnere, conobbe il programma durante una visita a Moler all'università di Stanford nel 1983. Riconoscendo il suo potenziale commerciale, si unì con Moler e Steve Bangert. Essi riscrissero MATLAB in C e fondarono la MathWorks nel 1984 per continuare il suo sviluppo.

[modifica] Programmare in Matlab

[modifica] Prompt dei comandi

È possibile utilizzarlo come calcolatrice, ad esempio:

2+3
ans=5

La variabile ans è una variabile standard. In essa viene caricato l'ultimo risultato. Con il comando quit, si esce dal programma:

quit

È presente anche un help on-line. Si può richiamare tramite il comando:

help <nome_comando>

Esempio

help sqrt
help det

Le operazioni standard sono:

+ (somma)
- (sottrazione)
* (moltiplicazione)
/ (divisione)
^ (elevamento a potenza)

Se si scrivono più comandi su una stessa linea è necessario separarli con una virgola ‘,’ . Con la freccia in su, tasto ↑, si scorrono i comandi precedentemente scritti ed eseguiti. Si possono utilizzare le parentesi () per modificare la priorità tra le varie operazioni.

[modifica] Workspace

Il workspace è lo spazio di memoria contente le variabili dichiarate. Per visualizzare tutte le variabili utilizzate si utilizza il comando

who

con il comando

whos

visualizziamo tutte le variabili utilizzate, ma in forma estesa, cioè ci viene data la loro descrizione: nome, dimensione, memoria occupata, classe e attributi.

[modifica] Variabili

[modifica] Variabili predefinite

In MATLAB ci sono delle variabili predefinite. Esse sono:

•	i,j         unità immaginaria in un numero complesso
•	pi          approssimazione di pi greco, π
•	eps         precisione di macchina del pc che si sta utilizzando
•	realmax     è il massimo numero reale positivo rappresentabile
•	realmin     è il minimo numero reale positivo rappresentabile
•	inf         è un numero maggiore di realmax, ∞, infinito
•	version     ci da la versione di MATLAB utilizzata
•	computer    ci dice il tipo di computer utilizzato. Esempio: PCWIN
•	ans         ultimo risultato dell'ultima operazione eseguita

[modifica] Dichiarazione variabili

Contrariamente ad altri linguaggi, che necessitano della specificazione del tipo di variabili, per dichiararle in Matlab è sufficiente scrivere il nome della variabile con il segno = seguito dal valore numerico o alfabetico della variabile. Nel caso in cui si tratti di testo bisogna metterlo tra apici (' ').

var1=1
var2='abc'

Se in fase di esecuzione non vogliamo visualizzare il valore della variabile dobbiamo terminare l'assegnamento con ;

var3=1234;
var4='abcdef';

Questa regola è valida per ogni assegnamento, sia di variabili che di matrici. Inoltre Matlab, al contrario di linguaggi come il BASIC, fa distinzione fra maiuscole e minuscole, quindi

v=1
V=1

risultano due variabili diverse e distinte. Per definire un numero complesso:

c=4+9*i

Per resettare, cancellare, il contenuto di una variabile si utilizza il comando

clear <nome_variabile>

per le variabili predefinite, questo comando ripristina il valore di default, altrimenti se sono altre variabili, essa viene eliminata dalla workspace. Omettendo il nome dalla variabile,

clear

viene effettuato il reset di tutta la workspace.

N.B.: di default le variabili dichiarate sono tutte di tipo double (floating point in doppia precisione).

[modifica] Vettori

[modifica] Definizione vettori

I vettori possono essere di due tipi:

  • Vettori riga
  • Vettori colonna

Il vettore riga è una matrice del tipo (1xn), dove n \in \mathbb{N}\!. Esempio:

vr=[ 2 8 10 7]

Il vettore colonna invece è una matrice del tipo (mx1), dove m \in \mathbb{N}\!. Esempio:

vc=[ 3; 1; 6; 8]

Spesso è utile definire i vettori con intervalli. Ad esempio un vettore che contiene i primi dieci numeri interi. In generale:

v=[inizio:incremento:fine]|[inizio|fine]

Esempi:

v1=[1:10]
v2=[-1:0.2:1]

che generano:

v1=[1 2 3 4 5 6 7 8 9 10]
v2=[-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1]

se si omette l'incremento, per default è 1.

Bisogna stare attenti a non assegnare all'incremento e alla destinazione numeri relativi discordi, che produrrà il seguente risultato in fase di esecuzione:

vet=10:1:-10
    
  vet =
         
 Empty matrix: 1-by-0

[modifica] Indicizzazione vettori

Per selezionare un elemento del vettore, sia riga che colonna, si utilizza la seguente istruzione:

v(posizione_indice)
v(k), dove k \in \mathbb{N}\!, seleziona l'elemento in posizione k-esima

Importante: si conta a partire da 1. Esempio di indicizzazione:

v=[7 3 0 5 2 6]
k=2
v(k)=3

[modifica] Matrici

[modifica] Definizione matrici

Per creare una matrice si procede in modo simile alle variabili, per quanto riguarda l'assegnamento, racchiudendo la matrice tra patentesi quadre, separando gli elementi di una stessa riga con una virgola o con uno spazio e le righe con un punto e virgola.

M1=[1 2 3 4;5 6 7 8;9 10 11 12]
M2=[13,14,15;16,17,18]
M3=['a',19,'b';20,'c',21]

In una matrice possiamo anche racchiudere variabili dichiarate in precedenza

M4=[var1 var2;var3 var4]

ed è inoltre possibile definirle per parti, ad esempio in una matrice M 3 x 3, i comandi

M(1,1:3)=[a1 b1 c1];
M(2,1:3)=[a2 b2 c2];
M(3,1:3)=[a3 b3 c3];

consentonodi assegnare alla prima riga i valori (precedentemente definiti) a1, b1 e c1, alla seconda a2, b2 e c2 e così via.

Un altro modo per una dichiarazione veloce di matrici è la seguente:

Sintassi: M=[inizio:incremento:fine]|[inizio|fine]

anche in questo caso se si omette l'incremento, per default è 1. Esempio:

M=[1:2:7;4:2:10;7:2:13]

M=  1     3     5     7
    4     6     8    10
    7     9    11    13

[modifica] Indicizzazione Matrici

Per selezionare un elemento di una matrice, utilizziamo la seguente istruzione:

M(indice_riga, indice_colonna)
M(l,k) dove l,k \in \mathbb{N}\!, selezionano l'elemento che si in riga l-esima e colonna k-esima

È possibile estrarre anche intere colonne o righe. Supponiamo di avere una matrice M del tipo nxm, in generale:

M(l,:) , estrae l'intera riga l-esima in un vettore riga di dimensione m
M(:,k) , estrae l'intera colonna k-esima in un vettore colonna di dimensione n
M(:) , estrae l'intera matrice in un vettore colonna di dimensione nxm

Per eliminare la colonna di una matrice M:

M(:,k)=[] ,elimina la colonna k-esima, la matrice M diventa nx(m-1)

[modifica] Operazioni Matrici

Per sapere la dimensione di una matrice si utilizza la funzione

size(nome_matrice)

Esempio

M=  1     3     5     7
    4     6     8    10
    7     9    11    13

size(M)
ans =  3     4

indica rispettivamente il numero di righe e di colonne. Questo risultato può essere estratto in un vettore. Esempio:

v=size(m)

v =    3     4

[modifica] Grafica

La grafica è parte fondamentale in Matlab per rappresentare i dati. In particolare, dati due vettori x e y delle stesse dimensioni, è possibile rappresentarne il grafico con il comando

 plot(x,y) 

ed è possibile includere opzioni come colore e legenda dopo aver inserito i nomi delle due variabili. Ad esempio,

 plot(x,y,'b')

fornisce in ascisse x, in ordinate y, ed il grafico sarà rappresentato con una linea blu.

[modifica] Esempio di linguaggio MATLAB

Questo codice, preso dalla function magic.m, crea un quadrato magico M per valori dispari di n.

[J,I] = meshgrid(1:n);
A = mod(I+J-(n+3)/2,n);
B = mod(I+2*J-2,n);
M = n*A + B + 1;

ad esempio, per n=3 si ottiene:

M =

    8     1     6
    3     5     7
    4     9     2

[modifica] Voci correlate

[modifica] Collegamenti esterni

Strumenti personali