Home Programmazione Matlab, corso base Capitolo 2: Variabili e operazioni matematiche di base. Variabili predefinite. Tutto è matrice.

Page Rank Check    





Ultimi articoli

Capitolo 2: Variabili e operazioni matematiche di base. Variabili predefinite. Tutto è matrice.
Guide di programmazione - Matlab, corso base
Scritto da RedBaron85   
Sabato 30 Gennaio 2010 17:51

Guida a Matlab - Corso base - Capitolo 2: variabili e operazioni matematiche di base. Variabili predefinite. Tutto è matrice


Capitolo 2: Variabili e operazioni matematiche di base. Variabili predefinite. Tutto è matrice.

In Matlab, le variabili vengono create semplicemente assegnando ad una sequenza di caratteri (il nome della variabile) un valore; ad esempio, digitando nel prompt:

>> a = 5;

creeremo una variabile di nome a con valore 5.

 

 

Nella finestra del Workspace vedremo apparire la variabile a, descritta come un array di double (Matlab ha definito per noi il tipo di variabile; comunque, vedremo in seguito come effettuare delle conversioni)... come, un array ? Sì, perchè in Matlab "tutto è una matrice", le operazioni sono da intendersi come operazioni tra matrici e, quindi, una singola variabile diventa una matrice di dimensione 1x1, e va memorizzata mediante un array (di dimensione 1).

Gli scalari, quindi, saranno matrici 1x1; i vettori, poi, saranno particolari matrici 1xN (vettore riga) o Mx1 (vettore colonna), mentre avremo infine le matrici vere e proprie, MxN (M righe per N colonne).

 

 

Per creare un vettore riga, bisogna inserire i valori all'interno delle parentesi quadre [   ] separandoli mediante una virgola (,) ; ad esempio:

>> vettoreRiga = [3, 2, 5];

La virgola indica un nuovo valore sulla stessa riga, mentre il punto e virgola indica il passaggio ad una riga successiva, per cui creeremo un vettore colonna con (esempio):

>> vettoreColonna = [3; 2; 5];

e una matrice vera e propria con (esempio):

>> miaMatrice = [3, 2, 1; 4, 5, 6; 9, 10, 12];

 

I nomi delle variabili sono case sensitive, per cui la variabile

>> A = a * 5;

sarà diversa da a, che continuerà ad esistere, con il proprio valore.

 

Il punto e virgola finale, nelle nostre istruzioni, evita di mostrare sul prompt l'esito dell'operazione (es: il valore assegnato ad una variabile), ma provate a scrivere ad esempio:

>> a = 5;

>> a

(premendo Invio dopo aver premuto a) per vedere mostrato a video il valore della variabile (potete farlo, ad esempio, anche con "vettoreColonna" per vedere, stampati in verticale - in colonna, appunto - i valori della variabile).

 

I nomi delle variabili possono al massimo 63 caratteri e devono iniziare con una lettera, che può essere però seguita da lettere, numeri o dal simbolo _ (underscore, il trattino basso).

Alcune variabili sono predefinite, per cui i loro nomi sono "riservati"; ad esempio, abbiamo (provate a digitarli nel prompt, senza ; finale, e a premere Invio):

ans Il nome della variabile che contiene il risultato dell'ultima operazione effettuata (se non assegnata ad una variabile).
pi Pi greco.
inf Il valore infinito.
NaN "Non un numero", cioè indefinito o indeterminato, come ad esempio il risultato di  0/0.
i Radice quadrata di -1 (o: 0 + 1i).
j Radice quadrata di -1 (o: 0 + 1i).
eps Precisione di macchina.
realmin Il più piccolo valore intero positivo utilizzabile / rappresentabile.
realmax Il più grande valore intero positivo utilizzabile / rappresentabile.

 

Le operazioni matematiche di base sono invece le seguenti:

+ Addizione; a+b.
- Sottrazione; a-b.
* Prodotto; a*b.
.* Prodotto termine a termine per i vettori; a.*b.
/ Divisione; a/b.
./ Divisione termine a termine per i vettori; a./b.
^ Elevamento a potenza; a^b.
.^ Elevamento a potenza termine a termine per i vettori a.^b.

Un esempio per chiarire meglio le differenze tra le operazioni con e senza . (per scalari o per vettori): data una matrice QUADRATA di nome X, con:

>> Y = X^2;

avremo, in Y, il prodotto della matrice X con sè stessa, mentre con:

>> Z = X.^2;

avremo, in Z, termini di X elevati "singolarmente" al quadrato ( Zi,j = (Xi,j)2).

 

Un'ultima considerazione sui tipi di dati: ecco i tipi primitivi di Matlab:

  • logical; un valore booleano (0 o 1), memorizzato con 1 byte per elemento.

  • char; elemento "letterale" (es: 'a'), memorizzato con 2 byte.

  • uint8; valore intero senza segno, memorizzato con 1 byte (range [0, 255]).

  • uint16; valore intero senza segno, memorizzato con 2 byte (range [0, 65535]).

  • uint32; valore intero senza segno, memorizzato con 4 byte (range [0, 4294967295]).

  • int8; valore intero con segno, memorizzato con 1 byte (range [-128, 127]).

  • int16; valore intero con segno, memorizzato con 2 byte (range [-32768, 32767]).

  • int32; valore intero con segno, memorizzato con 4 byte (range [-2147483648, 2147483647]).

  • single; valore float, memorizzato con 4 byte (range [-1038, 1038]).

  • double; valore double memorizzato con 8 byte per elemento (range [-10308, 10308]).

Esistono anche funzioni che consentono (qualora sia possibile effettuare tale operazione) di convertire un dato da un tipo ad un altro: per effettuare il casting, in genere basta passare un valore come parametro ad una funzione che ha, per nome, il nome del tipo di dati, ad esempio con:

>> x = 3;

>> a = uint8(x);

>> c = double(a);

Esistono anche funzioni per convertire tipi di dati più complessi tra loro o per "ridurli" a tipi di dati primitivi (matrici): ne riparleremo in seguito.

Discorso a parte merita la funzione real(numeroComplesso), che permette di estrapolare solo la parte intera di un numero complesso passato come parametro; in maniera analoga, la funzione imag(numeroComplesso) permette di estrapolare e depositare come valore a sè stante (matrice 1x1) la parte immaginaria di un numero complesso, mentre conj(numeroComplesso) calcola e restituisce il complesso coniugato di un numero complesso.

Tags:     programmazione      guide      manuali      corso      matlab      capitolo 2      variabili      operazioni matematiche di base      matrice      matrici      vettori      vettore
Ultimo aggiornamento Domenica 22 Gennaio 2012 14:34
 

Ti è piaciuto questo articolo ? Condividilo !



RedBaron85.com Forum community banner

Non hai trovato quello che cercavi ?
Ricerca personalizzata
Copyright © 2012 RedBaron85.com: Informatica, CG 2D e 3D, Blender, Python, Java 2D e 3D, 3D Studio e altro ancora!. Tutti i diritti riservati.
Joomla! è un software libero rilasciato sotto licenza GNU/GPL.

Milanese Francesco - Partita IVA: 04950350878

AltroArticoliblog utentiBlueprintsContestenglishProgrammazioneModelliElencoNewsTexturesTutorialsVideotutorials