Introduzione dei dati


Scalari

Una variabile scalare si definisce al prompt di MATLAB in questo modo:

a=2 <Invio>

Si noti il messaggio di ritorno

a =
    2

che può essere soppresso mediante l’uso del carattere <;>:

a=2; <Invio>

L’uso del carattere <;> è consigliato in particolare quando si introducono vettori o matrici con un numero elevato di elementi, in quanto consente di evitare un lungo flusso di dati sullo schermo. Una volta immessa, la variabile a viene conservata in memoria finché non è esplicitamente cancellata con il comando clear a. Per visualizzarne il valore è sufficiente digitare

a <Invio>

Si noti che MATLAB distingue tra lettere minuscole e maiuscole, per cui a e A sono due diverse variabili.

Vettori

Per introdurre un vettore esistono diversi metodi. Un primo sistema consiste nel racchiudere tra parentesi quadre gli elementi del vettore, separandoli con uno spazio bianco o con una virgola:

v=[2 3.1 -4 .7]; <Invio>

oppure

v=[2,3.1,-4,.7]; <Invio>

Le parentesi quadre si ottengono mediante la combinazione Alt Gr più uno dei due tasti a destra della P. Si noti che la virgola decimale deve essere introdotta come punto; inoltre nelle cifre del tipo 0,7 non è necessario riportare lo zero iniziale. Si può verificare infine facilmente che MATLAB ignora gli spazi vuoti tranne quando servono a separare i numeri introdotti.

Per quanto riguarda l’introduzione di vettori di grandi dimensioni, può essere utile osservare che per continuare un’istruzione su una linea successiva dello schermo si usano tre punti:

v=[2 3 8 9 ... <Invio>
7 8 2 1]; <Invio>

equivale a

v=[2 3 8 9 7 8 2 1]; <Invio>

Intervalli

Per utilizzare molte delle funzioni di MATLAB è necessario definire degli intervalli numerici. Un intervallo è un vettore i cui elementi vanno da un minimo ad un massimo con un passo costante, come per esempio

v = (4 6 8 10 12 14 16 18 20 22 24)

Solitamente, un vettore intervallo deve contenere un numero di elementi molto grande. Per esempio se si desidera costruire un grafico, per ottenere una curva continua è necessario definire almeno una trentina di punti. In altri casi, come per esempio per il valor medio di una funzione, la precisione del calcolo cresce con il numero dei punti considerati, per cui è opportuno sfruttare al massimo le possibilità del software (si ricorda che nella versione Student di MATLAB 5 la dimensione di una matrice o di un vettore non può superare 16.384 elementi).

Naturalmente è impensabile l’inserimento diretto di 16.000 numeri in un vettore, ed infatti esistono metodi più sbrigativi per eseguire l’operazione. Uno di questi consiste nell’usare la forma

v=xmin:passo:xmax;

dove xmin e xmax sono rispettivamente il valore del primo e  dell’ultimo elemento del vettore, e passo indica la distanza tra un elemento e il successivo (si noti che da ora in poi ometteremo di indicare ogni volta <Invio>). Per esempio digitando

v=1:1:100;

si definisce il vettore a 100 elementi

v = (1 2 3 ... 100)

mentre digitando

v=(0:.1:pi);

dove pi è la variabile predefinita pari a , si definisce il vettore a 32 elementi

v = (0 0,1 0,2 ... 3,1)

Si noti che in questo caso il valore massimo indicato (pi) non corrisponde esattamente al valore dell’ultimo elemento del vettore, poiché si trova al di fuori della serie di numeri equispaziati 0 - 0,1 - 0,2 - etc.

Un secondo metodo per definire un vettore intervallo consiste nell’uso della funzione linspace, nella forma

v=linspace(xmin,xmax,N);

dove xmin e xmax hanno lo stesso significato che in precedenza, e N stabilisce il numero di elementi del vettore (se omesso vale 100). Per esempio digitando

v=linspace(0,10,16000);

si definisce il vettore a 16.000 elementi

v = (0 0,000625 0,00125 ... 10)

mentre digitando

v=linspace(0,pi,32);

si definisce il vettore a 32 elementi

v = (0 0,1013 0,2027 ... 3,1416)

Si noti che in questo caso il valore dell’ultimo elemento del vettore coincide esattamente con il valore massimo indicato all’interno della funzione linspace.

Infine va sottolineato che se si deve rappresentare un grafico su scala orizzontale logaritmica, la definizione di un vettore intervallo a valori equispaziati non è la corretta operazione da fare. In questo caso infatti i punti del grafico risulterebbero sempre più addensati nel verso delle decadi superiori, e le decadi inferiori avrebbero a disposizione un numero di punti insufficiente a generare il grafico (fig. 1). Per risolvere tale inconveniente è opportuno generare il vettore intervallo mediante la funzione logspace, che nella forma

v=logspace(a1,a2,N);

genera un vettore a N punti logaritmicamente spaziati tra 10a1 e 10a2 (se omesso, N vale 50). Per esempio digitando

v=logspace(0,6,30);

si definisce il vettore a 30 elementi

v = (1 1,6103 2,5929 4,1753 6,7234 10,8264 17,4333 ... 106)

con circa 5 valori per decade.

 
Fig. 1
 

Matrici

Anche se non utilizzeremo matrici nel seguito di questa guida, vogliamo per completezza ricordare che una matrice può essere definita analogamente ad un vettore, ma separando le righe con il carattere <;>. Per esempio digitando

B=[1 2 4; 2 3 1];

si definisce la matrice

Notazione esponenziale

MATLAB utilizza la notazione esponenziale nella forma 2e3 (= 2·103 = 2.000). Per esempio

1.41e8   corrisponde a 1,41·108

4.56e-5  corrisponde a 4,56·10-5