Prompt interattivo di MATLAB

Nelle precedenti lezioni abbiamo visto come utilizzare le variabili e come immettere espressioni matematiche in MATLAB. Implicitamente abbiamo utilizzato il prompt interattivo di MATLAB per effettuare i nostri calcoli. In questa lezione scenderemo più nel dettaglio, mostrando alcune delle caratteristiche avanzate del prompt che possono tornare utili.

Nascondere il risultato

Nelle precedenti lezioni abbiamo inserito espressioni numeriche nel prompt interattivo; premendo invio, MATLAB ci mostra i risultati in maniera immediata. Ad esempio:

>> 3 + (7 * 2 ^ 4)

ans =

   115

In questo esempio, come abbiamo visto precedentemente, il risultato viene calcolato, mostrato e, soprattutto, salvato nella variabile ans. Questo è il comportamento di default di MATLAB.

A volte, specialmente quando il risultato di una computazione è molto grande da mostrare a schermo (come vedremo in seguito), può tornare comodo nascondere il risultato. Questo comportamento può essere ottenuto aggiungendo ;, un punto e virgola, alla fine dell'espressione.

Ad esempio, se vogliamo calcolare l'area di un cerchio di raggio 2 in una variabile A ma non vogliamo che venga mostrato il risultato basta inserire:

>> A = 2 ^ 2 * pi;
>>

Come potete vedere, MATLAB effettuerà i calcoli e salverà i risultati in A ma non mostrerà il risultato.

Formato numerico

Di default, MATLAB, nel momento in cui mostra i risultati, per una questione di leggibilità, si limita a mostrare quattro cifre significative dopo il punto, o virgola, decimale. Ad esempio:

>> 2 ^ 2 * pi

ans =

   12.5664

Anche se questo comportamento può andar bene per la maggior parte dei casi, a volte è necessario modificare il modo in cui MATLAB mostra i risultati.

Tenete bene a mente che questo comportamento riguarda soltanto il modo in cui i numeri e i risultati vengono mostrati ma non riguarda affatto il modo in cui MATLAB effettua i calcoli. Internamente, infatti, MATLAB usa una precisione più elevata per effettuare i calcoli come vedremo nelle prossime lezioni.

Per modificare il modo in cui vengono mostrati i risultati basta utilizzare la funzione format.

Richiamando la funzione format MATLAB utilizzerà, da questo momento in poi, la visualizzazione di default. Invece richiamando format seguita da uno spazio e da uno specificatore è possibile modificare il formato di visualizzazione. Esistono vari specificatori di formato e sono riportati di seguito:

format short

format short mostra i risultati in formato fixed point, in particolare usa solo 5 cifre (per questo "short", ossia "corto"). Se il risultato non può essere rappresentato con 5 cifre, utilizza la notazione floating point o notazione scientifica. format short è il formato di default.

Ad esempio:

>> format short
>> pi

ans =

    3.1416

Nell'esempio di sopra \pi greco viene mostrato con 5 cifre, 4 dopo il punto. Tuttavia, se inseriamo il numero 0.00082364987263:

>> x = 0.00082364987263

x =

   8.2365e-04

MATLAB utilizzerà la notazione scientifica utilizzando solo 5 cifre significative arrotondando il numero e mostrandolo come 8.2365 \cdot 10^{-4} anziché 0.00082. Da notare che la quinta cifra viene arrotondata a 5 invece che 4, in quanto dopo il 4 c'è il 9.

format short è equivalente a format short g nelle nuove versioni di MATLAB.

format short e

format short e è quasi identico a format short, infatti i risultati verranno mostrati con 5 cifre significative, tuttavia, MATLAB utilizzerà sempre la notazione scientifica o floating point Alternativamente si può specificare format shortE.

Ad esempio:

>> format short e
>> pi

ans =

   3.1416e+00

>> x = 2.6783746e-6

x =

   2.6784e-06

Nell'esempio di sopra, per \pi greco, anche se non è necessario, viene mostrato l'esponente del 10 anche se è pari a 0.

format long

format long utilizza tutte le cifre possibili per mostrare i risultati. Per il resto è simile a format short nello scegliere se usare la notazione fixed o floating.

Ad esempio:

>> format long
>> pi

ans =

   3.141592653589793

>> x = 0.00082364987263

x =

     8.236498726300000e-04

format long è equivalente a format long g nelle nuove versioni di MATLAB.

format long e

format long e usa sempre il numero massimo possibile di cifre, ma in ogni caso usa sempre la notazione floating point. Alternativamente si può specificare format longE.

Ad esempio:

>> format long e
>> pi

ans =

     3.141592653589793e+00

>> x = 0.00082364987263

x =

     8.236498726300000e-04

format bank

format bank è uno specificatore di formato raramente utilizzato in ambito scientifico o ingegneristico. Viene utilizzato per mostrare valori monetari, riportando sempre due cifre dopo la virgola. Si usa principalmente in ambito finanziario.

Ad esempio:

>> format bank
>> pi

ans =

          3.14

>> x = 0.00082364987263

x =

          0.00

format rat

format rat è uno specificatore di formato che mostra sempre i numeri come rapporti, i.e. numeri razionali.

Ad esempio:

>> format rat
>> pi

ans =

     355/113   

>> x = 0.00082364987263

x =

      37/44922 

Ovviamente, come mostrato dall'esempio, i risultati sono approssimazioni in quanto i numeri reali non possono, in generale, essere rappresentati come razionali. Nell'esempio \pi viene, infatti, mostrato come il numero \frac{355}{113} che ne è un'approssimazione.

format hex

format hex mostra i numeri in formato esadecimale. Il formato esadecimale viene utilizzato per mostrare il contenuto in memoria del numero e come esso sia rappresentato in bit.

Ad esempio:

>> format hex
>> pi

ans =

   400921fb54442d18

>> x = 0.00082364987263

x =

   3f4afd46a21621cc

Questo formato viene utilizzato soprattutto in ambito informatico ed elettronico per visualizzare l'effettiva rappresentazione in binario/esadecimale dei numeri floating point.

format +

format + non mostra i numeri ma soltanto i segni. Viene utilizzato più che altro per avere una visualizzazione rapida del segno dei numeri.

Ad esempio:

>> format +
>> pi

ans =

+

>> -34

ans =

-

>> 5.6

ans =

+

format compact e format loose

format compact e format loose non impattano sul numero di cifre e la precisione nel mostrare i numeri, bensì sulla leggibilità dell'output.

In particolare, usando format loose, MATLAB inserirà sempre delle righe vuote tra le righe di output in modo da rendere l'output stesso più leggibile, ad esempio:

>> format loose
>> pi

ans =

    3.1416

>> x = 0.00082364987263

x =

   8.2365e-04

Usando invece format compact, le righe vuote saranno rimosse e l'output sarà più compatto:

>> format compact
>> pi
ans =
    3.1416
>> x = 0.00082364987263
x =
   8.2365e-04

Help in linea

Utilizzando MATLAB può capitare di non ricordare bene a cosa serva una certa funzione o cosa essa faccia. Fortunatamente MATLAB mette a disposizione un sistema di help in linea molto semplice da utilizzare.

Per invocarlo basta usare il comando help. Ad esempio, per visualizzare informazioni sulla funzione sqrt basta inserire il comando

>> help sqrt
 sqrt   Square root.
    sqrt(X) is the square root of the elements of X. Complex 
    results are produced if X is not positive.

    See also sqrtm, realsqrt, hypot.

    Documentation for sqrt
    Other functions named sqrt

la funzione help può anche essere usata per cercare aiuto su di uno specifico argomento, ad esempio, per avere la lista completa di tutte le funzioni elementari di MATLAB basta inserire il seguente comando:

>> help elfun

Autocompletamento

MATLAB mette a disposizione un'importante scorciatoia per l'utente: l'autocompletamento.

Iniziando ad inserire il nome di un comando o di una variabile, premendo il tasto tab viene mostrata una lista di funzioni o variabili che iniziano con gli stessi caratteri. Da questa lista è possibile scegliere ciò che si stava cercando. La funzione di autocompletamento risulta anche utile per correggere gli errori di lettere maiuscole e minuscole.

Esempio di autocompletamento
Figura 1: Esempio di autocompletamento

Input troppo lungo

A volte può capitare di dover inserire nel prompt di MATLAB input troppo lunghi che oltrepassano i limiti di una riga. Per evitare di dover inserire tutto su di un'unica riga è possibile utilizzare tre punti: ... e premere invio.

In questo modo l'input può essere suddiviso su più righe:

>> 1/2 + 1/3 + 1/4 + 1/5 + 1/6 + 1/7 + 1/8 + 1/9 + ...
1/10 + 1/11 + 1/12 + 1/13 + 1/14 + 1/15

ans =

    2.3182

Scorciatoie della tastiera

Il prompt interattivo di MATLAB mette anche a disposizione una serie di scorciatoie da tastiera che semplificano l'attività dell'utente:

Tasto Combinazione Effetto
CTRL + P Richiama la riga precedente
CTRL + N Richiama la riga successiva ma funziona solo se in precedenza si è richiamata la riga precedente
CTRL + B Si muove all'indietro di un carattere
CTRL + F Si muove in avanti di un carattere
CTRL + Si muove a sinistra di una parola
CTRL + Si muove a destra di una parola
Home CTRL + A Sposta il cursore all'inizio della riga di comando
End CTRL + E Sposta il cursore alla fine della riga di comando
CTRL + Home Sposta il cursore in cima alla finestra del prompt
CTRL + End Sposta il cursore in fondo alla finestra del prompt
Esc CTRL + U Cancella il contenuto della riga di comando
Del CTRL + D Cancella il carattere sotto il cursore
CTRL + H Cancella il carattere prima del cursore
+ Home Seleziona il contenuto della riga di comando dal cursore fino all'inizio
+ End Seleziona il contenuto della riga di comando dal cursore fino alla fine
Tabella 1: Scorciatoie della tastiera di MATLAB

Riassumendo

In questa lezione abbiamo visto il prompt interattivo più nei dettagli. Abbiamo visto come modificare il formato con cui i risultati vengono visualizzati. Abbiamo visto alcuni trucchi per usare il prompt al meglio, tra cui l'autocompletamento e le scorciatoie da tastiera.

Adesso che sappiamo usare il prompt al meglio possiamo andare avanti e iniziare a conoscere i tipi di dato che MATLAB mette a disposizione. Nella prossima lezione introdurrò i tipi numerici.