Author Archives: admin

I grafici in Matlab

MATLAB

MATLAB possiede estesioni facilitate per esporre a video vettori e matrici attraverso grafici di qualità professionale, così da poter annotare e stampare questi grafici. Questa sezione descrive alcune delle funzioni grafiche più importanti e contiene esempi di alcuni applicazioni tipiche per imparare a tracciare in modo corretto i grafici in Matlab.

I grafici sono diffusamente utilizzati per rappresentare funzioni del tipo y = f (x), dove la variabile indipendente (x) è rappresentata lungo l’asse orizzontale e la variabile dipendente (y) viene descritta lungo l’asse verticale.

Un grafico di questo tipo, detto bidimensionale, può essere ottenuto da dati sperimentali o da un’espressione matematica.

matlab

 Per tracciare in modo corretto un grafico è necessario applicare una serie di regole:

  1.  è necessario innanzitutto che ogni asse abbia un titolo o etichetta con il nome di ciò che rappresenta e l’unità di misura adottata.
  2.  inoltre è consigliabile che ogni asse abbia dei segni di graduazione regolarmente distanziati.
  3.  poi se il grafico visualizza più curve bisogna adottare una legenda per caratterizzarle
  4.  invece se il grafico visualizza diversi insiemi di dati sperimentali è conveniente adottare dei simboli diversi come marcatore del dato.

Utilizzando le indicazioni appena descritte impareremo facilmente a tracciare i grafici in Matlab.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

La funzione disp in matlab

MATLAB

La funzione disp (X) in Matlab, mostra un array, senza stampare il suo nome. Se X contiene una stringa di testo, la stringa viene visualizzata. Un altro modo in matlab per visualizzare una matrice sullo schermo è quello di digitare il suo nome, ma questa stampa un leader “X =”, che non è sempre auspicabile. Si noti che disp non visualizza un array vuoto.

Esempio

Un utilizzo della funzione disp con l’ausilio di un M-file è quello di visualizzare una matrice con le etichette di colonna:

disp( ‘ uno due tre)
disp (rand (5,3))

che si traduce in

uno due tre
0,2113 0,8474 0,2749
0,0820 0,4524 0,8807
0,7599 0,8075 0,6538
0,0087 0,4832 0,4899
0,8096 0,6135 0,7741

matlab

È inoltre possibile utilizzare il comando disp per visualizzare un collegamento ipertestuale nella finestra di comando. Includere la stringa completa dell’ipertesto su una sola riga come input per disp:

disp ( ‘ Il sito di Giuseppe Ciaburro‘)

che genera questo collegamento ipertestuale nella finestra di comando:

Il sito di Giuseppe Ciaburro

Cliccare sul link per visualizzare la home page del sito di Giuseppe Ciaburro in un browser web.

Per la concatenazione è possibile utilizzare disp per visualizzare gli elementi multipli. Ad esempio:

x = [1 2 3];
disp ([ ‘I valori di X sono:’, num2str (x)])

visualizza

I valori di X sono: 1 2 3

Se si desidera visualizzare il testo senza carattere di nuova riga finale, è necessario utilizzare la funzione fprintf. Per esempio,

fprintf ( ‘% s% d% d% d’, ‘I valori di X sono:’, x (:));

visualizza il testo simile al precedente, ma non include un ritorno a capo.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Salvare una sessione in Matlab

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

matlab

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.

Salvare  una sessione in Matlab
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

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

La funzione fopen in Matlab

MATLAB

La funzione fopen in Matlab, apre un flusso di comunicazione con il file il cui nome viene specificato all’interno delle parentesi tonde, tale nome può contenere il percorso nell’albero delle directory, nel caso venga omesso si assume che il file si trovi nella directory di lavoro la cosiddetta work.

La sintassi del comando è la seguente:

[fid, msg] = fopen(nome file, modalità di apertura)

dove fid e la variabile che identi ca il fi le, legge tutti i dati contenuti nel fi le identi cato da fid, convertendoli in base al formato speci cato. Si possono specificare anche percorsi relativi rispetto alla directory di lavoro. Se il file non esiste ed esso viene aperto in modalità “w” allora il file viene creato.

Nel caso il flusso di comunicazione non venga aperto allora Matlab restituisce il valore -1 ed un messaggio di errore che ci comunica che qualcosa è andato storto; in tal caso si potrà verificare che:

il file che deve essere aperto in lettura non esiste

si  è verificato un errore nell’interazione con il supporto di memorizzazione su cui il file risiede

L’istruzione segunete:

fopen(‘all’)

restituisce un vettore riga che contiene gli ID di tutti i file aperti dal programma.

Vediamo infine il significato di una serie di parametri che possono essere utilizzati con la funzione fopen in Matlab:

  • “r”: apre un file esistente in lettura
  • “w”: apre un file esistente (con distruzione di quanto in esso già presente) o crea un nuovo file in scrittura
  • “a”: apre un file esistente o crea un nuovo file in scrittura con posizionamento alla fine del file. Quanto già presente nel file viene mantenuto
  • “rt”: come “r” ma in modalità testuale
  • “wt”: come “w” ma in modalità testuale
  • “at”: come “a” ma in modalità testuale
  • “r+” e ”rt+”: come “r”/”rt” ma si può anche scrivere nel file
  • “w+” e “wt+”: come “w”/”wt” ma si può anche leggere dal file
  • “a+” e “at+”: come “a”/”at” ma si può anche leggere dal file

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Come caricare un file in Matlab

MATLAB

In questa lezione impareremo come caricare un file in Matlab. Vediamo allora come leggere dati da un archivio di testo. Il nome esterno del file sia ”file.txt” che risulta generato con un programma esterno.

Il nome in Matlab deve essere posto entro apici perchè si tratta di una stringa. Per iniziare si apre il file assegnandogli un nome interno, ad esempio nomefile, in lettura ( ’r’ che sta per ”read” ).

nomefile = fopen ( ’file.txt’ , ’r’);

Si preleva dall’archivio nomefile la matrice A leggendo le due colonne di numeri in formato ”%g”.

A = fscanf ( nomefile , ’%g %g’ , [2 inf] );
A = A’;

Si noti che per primo si mette il nome interno: (nomefile) per secondo si mette il formato (’%g%g’) per terzo si mette il numero di elementi per riga(2) e, non sapendo quante righe sono, si mette inf il tutto entro parentesi quadre per indicare la matrice da prelevare. Per ultimo si chiude il file:

fclose (nomefile);

matlab

Ricapitoliamo i comandi utilizzati per caricare un file in Matlab:

  • aprire =) fopen (…)
  • chiudere =) fclose (…)
  • scrivere =) fprintf (…)
  • leggere =) fscanf (…)

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Come salvare un file in Matlab

MATLAB

In questa lezione impareremo come salvare un file in Matlab. Vediamo allora come salvare dei dati in un filedi testo. Si voglia, ad esempio,  salvare i risultati della funzione exp(x) entro l’intervallo (1; 2) con passo 0.1. Si costruisca dapprima il vettore seguente:

x = 1 : 0.1 : 2 ;

e quindi si valuta una matrice A nel modo seguente:

A = [ x ;exp(x) ];

Decidiamo che il nome esterno del file su cui si vuole salvare la matrice A sia file.txt ; esso dovrà essere posto all’interno di apici perchè si tratta di una stringa. Apriamo il file in scrittura con il parametro ’wt’ assegnandogli il nome interno nomefile. L’istruzione è la seguente:

nomefile = fopen ( ’file.txt’ , ’wt’);

In questo modo si deposita nel file nomefile la matrice A, scrivendo le due colonne di numeri decimali:

  1. la prima colonna con 6 cifre di cui 2 decimali
  2. la seconda colonna 8 cifre di cui 4 decimali.

matlab

Attraverso il comando  fprintf, che rappresenta un acronimo di file print formatted, saremo in grado di stampare a video quanto contenuto nel file appena creato.

fprintf ( nomefile , ’%6.2g %8.4g\n’ , A);

Si noti che per primo si mette il nome interno nomefile, per secondo si mette il formato per terzo si mette la matrice A.

Quindi si chiude il file con il comando:

fclose (nomefile);

Se si vuole analizzare il file così creato lo si può fare con un editor di testo qualsiasi, in questo modo potremo verificare che l’operazioen attraverso la quale abbiamo salvato un file in Matlab è riuscita correttamente.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Come installare ActivePython

python

Vediamo allora come installare ActivePython che ci occorre per procedere con la programmazione in ambiente Python; per scaricare il pacchetto basterà collegarsi al sito della ActiveState disponibile al seguente url:

 http://www.activestate.com/activepython/

Dopo una schermata introduttiva nella quale vengono presentate le caratteristiche del pacchetto e dove reperire idonea documentazione, nella parte bassa della finestra sarà possibile scegliere la distribuzione compatibile con la nostra macchina, selezionandola in una lista davvero ricca che annovera le seguenti distribuzioni:

  • •           Windows x86
  • •           Linux x86
  • •           Linux x86_64
  • •           Mac OS X (Universal)
  • •           Solaris 8 SPARC
  • •           Solaris 8 SPARC (64-bit)
  • •           Solaris 10 x86
  • •           AIX PowerPC
  • •           HP-UX PA-RISC

python

Una volta scelta la piattaforma relativa alla nostra macchina cliccando sul relativo link partirà il download, alla fine del quale potremo trovare il file ActivePython-3.1.2.3-win32-x86.msi sul nostro hard disk. A questo punto basterà cliccare due volte sul file, per attivare la procedura di installazione che risulterà totalmente automatizzata, ci dovremo semplicemente limitare ad assistere da spettatori se non seguire le istruzioni dell’installer.

Se disponiamo di poco spazio sull’hard disk, potremo effettuare un’installazione personalizzata ed escludere la documentazione, ma non risulta particolarmente  raccomandabile a meno che non siate già dei guru del linguaggio e quindi non abbiate bisogno di un aiuto. Una volta completata l’installazione, chiuderemo l’installer ed apriremo l’interfaccia dell’interprete Python attraverso il seguente percorso:

 Start->Programs->ActiveState ActivePython 3.01.->PythonWin IDE

Da questo momento potremo iniziare ad interagire con l’ambiente integrato appena installato avendo potuto verificare come installare ActivePython.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Installazione di Python su Windows

python

Il linguaggio Python supporta il sistema operativo Windows, anzi le performance che manifesta sono a dir poco eccellenti, anche se il sistema nativo del Python è come sappiamo Linux.

Di seguito analizzeremo le procedure di installazione di Python su Windows, analizzando in particolare la procedura dettagliata relativa ad una macchina amd con sistema operativo Windows. Si è deciso di procedere con questa simulazione in quanto su macchine Linux il pacchetto Python è di solito già presente; semmai sarà necessario solo procedere ad un aggiornamento alla versione più recente.

Ci sono essenzialmente due modi per installare Python, entrambi risultano piuttosto veloci e sfruttano la possibilità che offrono tutti gli applicativi Windows di utilizzare delle procedure di installazione automatizzate, i cosiddetti installer, attraverso i quali la fase di installazione del software si riduce da parte dell’utente alla necessità di dover cliccare, una serie di volte su dei bottoni con la scritta avanti.

python

In questo caso la cosa risulta particolarmente vantaggiosa in quanto con un solo file si riesce ad installare tutto il software necessario per poter essere immediatamente operativi.

Nel primo metodo utilizzeremo il pacchetto distribuito dalla ActiveState denominato ActivePython che produce un’installazione Windows per Python che comprende una versione completa di Python, un IDE (integrated development environment, in italiano ambiente integrato di sviluppo che aiuta i programmatori nello sviluppo del software), con un editor capace di riconoscere codice Python e quindi di evidenziare i token, più alcune estensioni di Windows per Python che consentono un accesso completo ai servizi specifici di Windows, alle sue API ed al suo registro.

ActivePython è liberamente scaricabile, tuttavia non è open source. Rappresenta un ottimo pacchetto completo che ci permette di accedere all’interprete in modo agevole e senza difficoltà; l’unica nota di demerito può essere rappresentata dal fatto che l’installer di ActivePython di solito risulta essere indietro di alcuni mesi nell’aggiornamento rispetto ai rilasci delle nuove versioni di Python.

Per il secondo metodo invece utilizzeremo il pacchetto disponibile sul sito ufficiale del linguaggio già segnalato in precedenza; anche in questo caso utilizzeremo un installer che sarà in grado di installare sulla nostra macchina sia l’interprete che la Python Gui.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Il software Python

python

Vediamo innanzitutto dove reperire il software Python da installare sulla nostra macchina per poter iniziare a programmare con Python. I pacchetti che dovremo installare sono disponibili sul sito ufficiale del linguaggio al seguente url:

http://www.python.org/

Naturalmente prima di scaricare le versioni del software dovremo informarci sul tipo di macchina a nostra disposizione e sul sistema operativo su di essa installato. Ricordiamo però che Python è disponibile praticamente per tutti i sistemi operativi in circolazione.

L’interprete Python consentirà la traduzione del nostro codice Python in un linguaggio comprensibile al nostro computer e che gli permetterà di eseguire le istruzioni in esso contenute. Nel periodo di stesura di questo libro, la versione corrente dell’inteprete Python è la 3.1.2 che rappresenta quella stabile ed è per questo che negli esempi  che ci accompagneranno nei capitoli successivi ci riferiremo a tale versione.

python

Possiamo tranquillamente scaricare il software Python dalla rete, in quanto la programmazione con Python è tutta open source e quindi liberamente scaricabile da internet dove possiamo trovare dei siti che oltre a fornire procedure dettagliate per il download della versione corrente del software forniscono anche una soddisfacente documentazione.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

La portabilità di Python

python

Una caratteristica che ha determinato il successo di Python nel panorama mondiale della programmazione è stata la sua estrema portabilità; esistono versioni di Python per piattaforma Linux (suo ambiente naturale visto che qui è stato sviluppato), per sistemi operativi Unix-like, Mac OS, e Windows in tutte le sue versioni.

La versatilità di Python si manifesta nella sua interezza nel momento che esiste una versione di Python anche per l’obsoleto sistema operativo con interfaccia orientata ai caratteri MS-DOS.

python

Ma lo sviluppo di Python non si ferma alle piattaforme appena viste ma si estende a quelle che oggi vengono diffusamente utilizzate per la programmazione dei cellulari, di navigatori satellitari e quant’altro. Infine, ma non per ultimo, Python può essere utilizzato su Java e nella .NET virtual machines.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

La sintassi di Python

python

La sintassi di Python lo rende perfetto per la costruzione di semplici DSL da utilizzare all’interno della propria applicazione, grazie alla sua sintassi ed alle sue funzionalità di metaprogrammazione.

Abbiamo già specificato che Python è totalmente Object Oriented, questo si traduce nel fatto che in Python tutto è un oggetto. In tale aspetto riesce a surclassare il linguaggio ad oggetti per eccellenza e cioè Java in quanto in Python non esiste nessuna distinzione tra tipi base e oggetti, allo stesso tempo la programmazione orientata agli oggetti in Python non risulta ne invasiva ne fastidiosa, e ciò è dovuto alla sua maggior purezza.

Una caratteristica particolarmente gradita dai programmatori Python è stata la possibilità di utilizzare i cosiddetti blocchi che rappresentano una feature non comune nei linguaggi più diffusi e che permettono di rappresentare diversi problemi, anche molto diversi tra loro, con modalità chiare e significative.

python

Il Python risulta amato, allo stesso modo, dai programmatori professionisti che ne apprezzano le caratteristiche più avanzate, e dai principianti in quanto si presenta particolarmente adatto ad essere imparato come primo linguaggio.

Infatti grazie alla sua semplicità, è possibile apprendere le nozioni di base della programmazione, senza doversi preoccupare di innumerevoli convenzioni e aspetti non strettamente legati alla realizzazione degli algoritmi numerici.

Inoltre Python si presenta efficacemente espressivo in quanto fornisce molte strutture dati e tipi built-in ( i tipi built-in rappresentano dei tipi già definiti all’interno del linguaggio); esempi sono:

  • dict,
  • liste,
  • regexp,
  • numeri interi di dimensione arbitraria.

La sintassi di Python fa si che le classi presentino un’interfaccia molto dettagliata, che determina una semplicità nell’utilizzo nelle operazioni comuni.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate: