giovedì 24 ottobre 2013

Come moltiplicare due array in Matlab

Come moltiplicare due array in Matlab
Come moltiplicare due array in Matlab

Una volta dichiarato un array viene creato per eseguire su di esso delle oeprazioni, allora vediamo come è possibile operare sugli array o meglio vediamo come applicare gli oepratori che comunemente utilizziamo in aritmetica, ma questa volta facendoli agire su dei vettori.

Le comuni operazioni di addizione e sottrazione operano sugli array in modo del tutto naturale, nel senso che si applicano con le stesse regole che abbiamo imparato ad utilizzare a scuola, così l'operazione verrà eseguita sui singoli elementi. Per meglio comprendere come opera Matlab vediamo un esempio, nel quale dopo aver definito due vettori ne effettueremo la somma e la sottrazione:


>> a=[1:5]

a =

     1     2     3     4     5

>> b=[3:7]

b =

     3     4     5     6     7

>> c=a+b

c =

     4     6     8    10    12

>> d=b-a

d =

     2     2     2     2     2


Come è possibile notare dopo aver definito due vettori con un numero di elementi uguale (nella fattispecie 5 elementi), ne abbiamo fatto la somma (la sottrazione) con il risultato che il vettore ottenuto ha per elementi la somma (la sottrazione) degli elementi dei due vettori.
   
Ma cosa ccade quando eseguiamo le operazioni di moltiplicazione e di addizione? A tal proposito è importante segnalare che affinchè le seguenti operazioni:

*
^
/

vengano effettuate punto per punto è necessario applicare la npotazione . e cioè facendo precedere l'operatore da un punto, vediamo come:

>> a=[1:5]

a =

     1     2     3     4     5

>> b=[3:7]

b =

     3     4     5     6     7


  >> e=a.*b

e =

     3     8    15    24    35

>> f=a./b

f =

    0.3333    0.5000    0.6000    0.6667    0.7143


Vediamo un altro esempio:

[1,2,3,4].*[1,2,3,4]

oppure

[1,2,3,4].^2

che ci permette di ottenere:

[1,4,9,16]

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:




mercoledì 23 ottobre 2013

Una serie di trucchi in Matlab

Una serie di trucchi in Matlab
Una serie di trucchi in Matlab
Quando si opera con un software da diverso tempo si impara ad utilizzare delle scorciatoie che ci permettono di eseguire le stesse operazioni ma in un tempo nettamente inferiore. Si tratta di una serie di trucchi che si acquisiscono con l'esperienza del fare, maturata nel tempo e con lo spirito di indagine e ricerca di nuove strade da percorrere.

Di seguito vi rendo partecipe di una serie di procedure che ci permettono di eseguire delle operazioni di normale routine con estrema velocità, risparmiando così del tempo prezionso da dedicare magari ad approfondire altri argoemnti.

  1. Iniziamo col dire che se lasciamo come ultimo carattere di una dichiarazione un punto e virgola, allora indicheremo all'interprete Matlab di sopprimere la stampa del risultato, ma comunque l’operazione viene eseguita corretamente. Ciò risulta essenziale nella soppressione delle stampe indesiderate di risultati intermedi
  2. Ricordiamo poi che MATLAB è case-sensitive nei nomi di comandi, funzioni e variabili. Così la stringa GIUSEPPE assumen un significato diverso rispetto alla stringa giuseppe.
  3. Il comando who elenca le variabili disponibili attualmente nell’area di lavoro; se digitato al prompt di matlab ci darà qualcosa di simile:
    >>who
    Your variables are:
    a b c giuseppe GIUSEPPE
  4. Una variabile può essere cancellata dallo spazio di lavoro con il comando:
    clear nomevariabile
  5. Il comando clear se usato senza opzioni  annulla tutte le variabili non permanenti.
  6. La variabile permanente eps (epsilon) restituisce la precisione della macchina, che risulta essere di circa 10-16 sulla maggior parte delle macchine. E ‘utile per determinare la convergenza dei processi iterativi.
  7. Un calcolo, può essere fermato sulla maggior parte delle macchine, senza lasciare MATLAB con la combinazione di tasti CTRL-C (CTRL-BREAK su un PC).
Per adesso vi ho proposto queste semplici procedure che ci aiutano ad essere magiormante produttivi, nel futuro ci saranno certamente altre occasioni per svelarni altri trucchi in ambiente Matlab.  

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:


martedì 22 ottobre 2013

Come salvare una sessione in Matlab

Come salvare una sessione in Matlab
Come salvare una sessione in Matlab
MATLAB rappresenta un linguaggio di programmazione interpretato, nel senso che le espressioni che vengono digitate nell’ambiente di lavoro di Matlab sono interpretate e quindi valutate. Quando si inizia una nuova sesione in ambiente MATLAB le dichiarazioni sono inserite nel prompt nella forma:

variabile = espressione 

o semplicemente 

espressione 

Tali espressioni possono essere composte da operatori, funzioni e nomi di variabili. Fato questo il comando passa all'interprete Matlab che valuta l’espressione producendo una matrice, la quale sarà poi visualizzata sullo schermo ed assegnata ad una variabile per poterla poi utilizzare nei successivi calcoli. 

Se nella dichiarazione della variabile vengono omessi il nome ed il segno =, viene creata automaticamente una variabile ans le viene assegnato il risultato del calcolo.

Quando si scrivono più espressioni allora per separare un comando da un altro basta utilizzare un ritorno a capo. Ma nel caso volessimo, per ridurre la lunghezza del codice, inserire più di una dichiarazione sulla stessa riga basterà separarli con un punto e virgola. 

Per evitare di visualizzare il risultato di ogni operazione sul prompt di Matlab basterà inserire un punto e virgola alla fine dell'espressione, in modo che la stampa sia soppressa, ma l’assegnazione venga effettuata. 

Ricordiamo ancora una volta che MATLAB è case-sensitive nei nomi di comandi, funzioni e variabili. Ad esempio, la funzione MIAFUNZIONE non è la stessa della funzione miafunzione. 

Salvataggio di una sessione
Quando ci si disconnette o si esce dall'ambiente MATLAB tutte le variabili utilizzate nella corrente sessione risulteranno perse. Per evitare di perederre tutto il lavoro effettuato fino a quel momento possiamo invocare il comando save prima di uscire dalla sessione. In questo modo tutte le operazioni effettuate nelle sessione corrente e le variabili utilizzate saranno scritte in un file con nome matlab.mat. 

>>save

Quando si avviaerà una nuova sessione MATLAB, attraverso l'utilizzo del comando load potremo ripristinare l’area di lavoro al suo stato precedente.

>> load
Loading from: matlab.mat

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:

lunedì 21 ottobre 2013

Come realizzare cicli for in Matlab

Cicli for in Matlab
Cicli for in Matlab
Le dichiarazioni per il controllo del flusso rappresentano, nel mondo della programmazione, il costrutto più utilizzato e questo perchè attraverso tali strumenti è possibile controllare l'esecuzione delle istruzioni e quindi indicare la giusta direzione che il nostro programma deve pecorrere al verificarsi di una specifica condizione.

In ambiente matlab, le dichiarazioni di controllo del flusso, nelle loro forme di base, operano in modo del tutto analogo a quelle che sono disponibili negli altri linguaggi di programmazione. Per meglio comprendere quanto detto facciamo un esempio: scriviamo allora per un dato numero N un blocco di codice che produrrà un vettore x, allora per fare questo scriveremo la dichiarazione seguente:

x = [];
for i = 1:n,
     x=[x,i^2 ]
end

Mentre nell'esempio che segue produrremo lo stesso vettore in ordine inverso:

x = [];
for n i =: -1:1
    x = [x, I ^ 2]

end

E' importante ssottolineare che con la seguente istruzione:

x = []

abbiamo dichiarato una matrice vuota.

Le dichiarazioniseguenti invece:

for i = 1: m
   for j = 1: N
        H (i, j) = 1 / (i + j-1);
   end
end
H

producono e stampano a video la matrice m-x-n di Hilbert.

Infine ricordiamo che il punto e virgola sulla memoria interna elimina la stampa dei risultati intermedi non desiderati, mentre stamperà sul display il risultato finale.

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:


giovedì 17 ottobre 2013

Come realizzare un ciclo While in Matlab

Il ciclo While in Matlab
Il ciclo While in Matlab
Spesso nella programmazione risulta necessario eseguire più volte un certo e determinato blocco di codice, se ciò fosse necessario allora si rende necessario l'utilizzo di una struttura condizionale, comunemente detto ciclo, che ci permette al verificarsi di una certa condizione di ripetere una porzione del programma.

Nella presente lezione vedremo come realizzare un ciclo While in ambiente Matlab, fornendo a corredo una serie di esempi esplicativi.

La forma generale di un ciclo while è la seguente:

while relazione
    statements
end

dove relazione rappresenta un controllo booleano che viene effettuato ogni volta al termine del blocco di istruzioni contenuto tra le parentesi graffe.Le istruzioni saranno eseguite ripetutamente fino a quando la condizione contenuta in relazione rimane vera. 

Ad esempio, per un dato numero, il seguente statement calcola e visualizza il più piccolo intero n non negativo tale che 2n> = a:

a=10;

n = 0;
while 2 ^ n <a
   n = n + 1;
end
L'esempio successivo incrementa un contatore finchè esso non vale 20:

i = 0;
while i<20
    i = i+1;
end
 

mercoledì 16 ottobre 2013

Matlab - Come costruire in modo veloce delle matrici

Le funzioni Matlab per la creazione di matrici
Le funzioni Matlab per la creazione di matrici
Quando operiamo con le matrici, spesso dobbiamo costruire la matrice su cui effettuare dei calcoli da dati che sono a nostra disposizione, allora si dimostrano particolarmente utili una serie di funzioni buil-in che l'ambiente matlab contiene al suo interno.

Grazie all'utilizzo di tali funzioni sarà possibile costruire tali funzioni in modo semplice e veloce, vediamo allra degli esempi di tali funzioni.

Di seguito è riportato un elenco di utili funzioni per la costruzione di matrici:

eye(10)      -  Matrice identità
zeros(10)    - Matrice di zeri
ones(10)     - Matrice di 1
diag(A)       - Matrice diagonale
triu(A)         - Matrice diagonale superiore
tril(A)          - Matrice diagonale inferiore
rand(10)      -  Matrice con numeri casuali
hilb(5)          -  Matrice di Hilbert
magic(5)      -  Matrice magica
toeplitz         - Matrice di toeplitz


Ad esempio, gli zeros(m, n) produce una matrice mxn di zeri e zeros(n) produce un vettore di zeri; se A è una matrice, allora zeros(A) produce una matrice di zeri delle stesse dimensioni di A.

Se x è un vettore, diag (x) è la matrice diagonale con x lungo la diagonale, se A è una matrice quadrata, allora diag (A) è un vettore costituito dalla diagonale di A.

Le matrici possono essere costruite con blocchi. Per esempio, se A è un 3-x-3 matrice, allora

B = [A, zeros(3,2); zeros(2,3), eye(2)]

costruirà una matrice 5-x-5 .

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:



lunedì 14 ottobre 2013

Come utilizzare il ciclo IF condizionale in Matlab


Struttura condizionale IF in Matlab
Struttura condizionale IF in Matlab
Le strutture di controllo rappresentano dei costrutti sintattici che ci consentono di controllare il flusso di esecuzione di un programma; in altre parole attraverso l’impiego di tali strutture sarà possibile specificare le modalità con cui devono essere eseguite le istruzioni che compongono il codice sorgente in base alle specifiche di progetto del software da realizzare.

In tale famiglia di strutture, le strutture di controllo alternative ci consentono di specificare che una data istruzione o un dato blocco di istruzioni vengano eseguite se e solo se risulti valida una specifica condizione.

Per tali motivi le strutture di controllo alternative vengono dette strutture condizionali.Tra le strutture condizionali la struttura if then else rappresenta una risorsa di cui ogni programmatore fa un uso massiccio.


La forma generale di una semplice istruzione if è la seguente:

if relazione
statements
end

Le dichiarazioni saranno eseguite solo se la relazione è vera. Ramificazioni multiple sono possibili, come si evince dal seguente frammento di codice:

         if n < 0
              var = 0;
         elseif  cond == 0
              var = 2;
         else
              var = 1;
         end
 
Nelle due direzioni di ramificazione la porzione elseif potrebbe essere omessa.


PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:

venerdì 11 ottobre 2013

Come utilizzare gli operatori relazioni in Matlab

Operatori relazionali in Matlab
Operatori relazionali in Matlab
Quando risulta necessario effettuare dei confronti tra relazione sorge l'esigenza di utilizzare gli operatori. In Matlab gli operatori relazionali utilizzabili sono riportati nella lista seguente:

< minore
> maggiore
< = minore o uguale
>= maggiore o uguale
== uguale
~= non uguale.

E' opportuno precisare che il simbolo “=” viene utilizzato in ambiente Matlab in un’istruzione di assegnazione, mentre è il simbolo “==” (due segni di uguale) che risulta essere utilizzato in una relazione.

Nel momento in cui un operatore relazionale viene applicato a scalari, il risultato è in realtà lo scalare 1 o 0 a seconda che la relazione sia vera o falsa. Per meglio comprendere il concetto facciamo un esempio, consideriamo allora le seguenti relazioni:

 1 < 5   - relazione vera

 1 > 5    - relazione falsa

1 == 5   - relazione falsa

1 == 1   - relazionevera

Quando un operatore relazionale viene applicato a matrici delle stesse dimensioni, il risultato è una matrice di 0 e di 1 che esprime il valore del rapporto tra le voci corrispondenti.

Quando utilizziamo una relazione tra matrici nei cicli while e if essa risulta vera se ogni voce della relazione è diversa da zero. Quindi, se si vuole eseguire un’istruzione in cui le matrici A e B risultano uguali è possibile digitare:

if A == B
      corpo del ciclo
end

ma se si vuole eseguire un’istruzione in cui A e B non sono uguali, è necessario digitare:

if any(any(A ~ B))
      corpo del ciclo
end

oppure  molto più semplicemente:

if A == B else
     corpo del ciclo
end

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:



giovedì 10 ottobre 2013

Come definire i vettori in Matlab

Come definire i vettori in Matlab
Grafici multipli in Matlab
Quasi tutti i comandi di base di Matlab ruotano intorno all’uso dei vettori, questo perchè i programmatopri hanno verificato che trattare i più diffusi problemi di algebra con l'utilizzo dei vettori accelerava di molto i calcoli. 

Ne consegue che l'elemento pricipale su cui si basa tutta la piattaforma è proprio il vettore, dunque rappresenta la risorsa principale che dobbiamo necessariamente imparare a trattare. 

Un vettore è definito in Matlab ponendo una sequenza di numeri all'interno di parentesi parentesi quadre, ogni elemento del vettore viene distinto dagli altri attraverso l'utilizzo di uno spazio, vediamone un esempio:

>> v = [7 2]
v =
7 2

Il codice appena proposto crea un vettore riga che viene individuato dall’etichetta “V”. Il primo elemento del vettore allora sarà 7 mentre ils econdo sarà 2. 

Si noti che MATLAB stampa una copia del vettore dopo aver premuto il tasto Invio. Se non si desidera stampare il risultato basterà aggiungere un punto e virgola alla fine della riga:

>> v = [7 2];
>>


PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:

mercoledì 9 ottobre 2013

Un elenco delle funzioni scalari più utilizzate in ambiente Matlab

Funzioni scalari più utilizzate in ambiente Matlab
E’ noto come per eseguire una particolare operazione si debba far ricorso ad una funzione. Matlab ci consente di creare delle funzioni a nostro piacimento ma contiene nel suo ambiente una serie di funzioni già pronte all’uso. 

Tali funzioni vengono dette funzioni built.in e ci permettono di eseguire praticamente quasi tutte le operazioni previste in algebra. 

Alcune funzioni MATLAB operano essenzialmente su scalari, ma operano altresì elemento per elemento se applicate ad una matrice. Le funzioni scalari più comuni, sono:

-sin
-asin
-exp
-abs
-round
-cos
-acos
-log (natural log)
-sqrt
-floor
-tan
-atan
-rem (remainder)
-sign
-ceil


PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:

martedì 8 ottobre 2013

Matlab - Vettori di grandi dimensioni

Vettori di grandi dimensioni in Matlab






















Un compito comune è quello di creare un vettore di grandi dimensioni con i numeri che si susseguono in modo ripetitivo. In Matlab è possibile definire una serie di numeri con un incremento comune sulla base del due punti. 

Ad esempio, per definire un vettore la cui prima voce è 1, la seconda voce è 2, il terzo è di tre, fino a 8 si immette il seguente costrutto:

>> V = = [1:8]
v =
1 2 3 4 5 6 7 8

Se si desidera utilizzare un incremento diverso da questo si deve definire il numero di partenza, il valore dell’incremento, e l’ultimo numero. 

Ad esempio, per definire un vettore che inizia con 2 e termina in 4 con un passo di 0,25 inserire le seguenti indicazioni:

>> v = [2:.25:4]
v =
Columns 1 through 7
2.0000 2.2500 2.5000 2.7500 3.0000 3.2500 3.5000
Columns 8 through 9
3.7500 4.0000

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:


lunedì 7 ottobre 2013

Matlab - Accesso agli elementi di un vettore

Come tracciare una figura in Matlab




















È possibile visualizzare le singole voci di un vettore. Dopo aver definito il vettore:

V=[2 1 3 4];

per visualizzare la prima voce è sufficiente digitare il seguente:

>> V (1)
ans =
2

Questo comando stampa il primo elemento nel vettore. Si noti inoltre che una nuova variabile chiamata ans è stata creata.

Ogni volta che si esegue un’azione che non include una variabile MATLAB depone il risultato nella varibile temporanea ans.

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:

- La variabile nargin in Matlab
- Le funzione in Matlab
- Gli m-files in matlab
- Matlab - Sottomatrici e notazione due punti 

domenica 6 ottobre 2013

Come creare dei vettori in modo automatico in Matlab

Mappe di colori in Matlab





















Per semplificare la creazione di vettori di grandi dimensioni, è possibile definire un vettore specificando la prima voce, un incremento, e l’ultima voce. Matlab automaticamente crea il vettorecon il numero di voci che ti serve e i loro valori.

Ad esempio, per creare un vettore i cui elementi sono 0, 2, 4, 6, e 8, è possibile digitare la seguente riga:

>> 0:2:8
ans =
0 2 4 6 8

Matlab registra anche l’ultimo risultato. Nell’esempio precedente, una variabile “ans” è stata creata. poichè non è stata indicata alcuna variabile in cui inserire il risultato Per vedere la trasposizione del risultato precedente, inserire la seguente istruzione:
 
>> ans’
ans =
0
2
4
6
8
 
PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:

- La variabile nargin in Matlab
- Le funzione in Matlab
- Gli m-files in matlab
- Matlab - Sottomatrici e notazione due punti

Matlab - La variabile ans



Diverse curve su uno stesso diagramma in Matlab

























La variabile ans viene creata ogni volta che si esegue un’azione che non include una variabile MATLAB in modo da deporre il risultato in tale varibile. Ad esempio:

>> [0:2:8]
ans =
0 2 4 6 8

Per essere in grado di tenere traccia di tutti i vettori che si creano, si può dare loro dei nomi. Ad esempio, il vettore fila appena creato può essere nominato in questo modo:

>> v = [0:2:8]
v =
0 2 4 6 8
>> v

adesso il vettore può essere richiamato semplicemente digitando il suo nome:

v =
0 2 4 6 8

se si digita il nome con il punto e virgola alla fine la stampa viene omessa:

>> v;

infine se si aggiunge un apostrofo dopo il nome del vettore si crea il vettore trasposto:

>> v’
ans =
0
2
4
6
8

PER APPROFONDIRE L’ARGOMENTO CLICCARE SUL LINK SEGUENTE:

- La variabile nargin in Matlab
- Le funzione in Matlab
- Gli m-files in matlab
- Matlab - Sottomatrici e notazione due punti

sabato 5 ottobre 2013

Matlab - Sottomatrici e notazione due punti


Rappresentazione di una funzione complessa in Matlab






















I Vettori e le sottomatrici sono spesso usati in MATLAB per ottenere complessi effetti di manipolazione dei dati. La notazione due punti, che viene spesso utilizzata in Matlab sia per generare vettori e sottomatrici di riferimento sia per indicizzare dei vettori,risulta fondamentale per la manipolazione efficiente di questi oggetti.
Un uso creativo di queste caratteristiche consente di minimizzare l’uso di loop, che rallentano MATLAB, e rende il codice semplice e leggibile. senza che l’utente debba applicare alcuno sforzoper acquisire familiarità con essi.

Gli m-files in matlab






















MATLAB può eseguire una sequenza di istruzioni memorizzate su diskfiles. Tali file sono chiamati M-files questo semplicemnete perché devono avere l’estensione . m, così come l’ultima parte del loro nome. Molto del nostro lavoro con MATLAB verrà semplificato con l’utilizzo degli M-files. 

Ci sono due tipi di M-files: i file di script e file di funzione. 

venerdì 4 ottobre 2013

Le funzione in Matlab


Grafico di una funzione in Matlab






















Le Funzioni ci danno la possibilità di estendere le potenzialità di MATLAB. È possibile creare nuove funzioni specifiche per il problema che poi assumono lo stesso status delle altre funzioni di MATLAB. Le variabili in un file di funzione sono locali per impostazione predefinita. Tuttavia, dalla versione 4.0 di Matlab ci è permesso di utilizzare una variabile da dichiarare globale.


La variabile nargin in Matlab

Nel corpo di un funzione nargin e nargout indicano quanti argomenti di ingresso o di uscita, rispettivamente, un utente ha in dotazione. Al di fuori del corpo di una funzione, nargin e nargout indicano il numero di argomenti di ingresso o di uscita, rispettivamente, per una determinata funzione.

Il numero degli argomenti è negativo se la funzione ha un numero variabile di argomenti.