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. |