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
>> x = 0.00082364987263
x =
8.2365e-04
MATLAB utilizzerà la notazione scientifica utilizzando solo 5 cifre significative arrotondando il numero e mostrandolo come
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
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
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.
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 |
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.