Tag Archives: giuseppe ciaburro

Struttura switch e case in Matlab

MATLAB

La struttura switch e case in Matlab ci consente di eseguire gruppi di istruzioni basati sul valore di un variabile o di un’espressione. La keywords case e otherwise delinea i gruppi. Solamente il primo caso è eseguito. Ci deve essere sempre una parola chiave end per lo statement switch .

La logica dell’algoritmo della matrice magic square può, ad esempio, essere descritta anche con il seguente codice Matlab:

switch (rem(n,4)==0) + (rem(n,2)==0)
  case 0
    M = odd_magic(n)
  case 1
    M = single_even_magic(n)
  case 2
    M = double_even_magic(n)
  otherwise
    error('This is impossible')
end

Diversamente dal linguaggio C, lo switch di MATLAB non commette errori. Se la prima istruzione del costrutto case risulta vera, il restante case statement non è eseguito. Così, non si rendono necessari break statement.

Vediamo ora un altro esempio in cui si visualizza un altro testo condizionale, in funzione di un valore immesso al prompt dei comandi.

n = input('Inserisci un numero: ');

switch n
    case -1
        disp('negativo')
    case 0
        disp('zero')
    case 1
        disp('positivo')
    otherwise
        disp('altro valore')
end

La struttura switch e case in Matlab

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Istruzione IF in Matlab

MATLAB

L’istruzione if in Matlab valuta un’espressione logica ed esegue un gruppo di asserzioni quando l’espressione risulta vera. L’else if opzionale e altre keywords provvedono per l’esecuzione di gruppi alternati di asserzioni. Una keyword END termina l’ultimo gruppo di asserzioni. I gruppi di asserzioni sono delineati da quattro keywords non sono previste parentesi.

L’algoritmo di MATLAB per generare una magic square di ordine n coinvolge tre casi diversi:

  1. quando n è dispari,
  2. quando n è pari ma non divisibile per 4,
  3. quando n è divisibile per

Questo è quanto riportato nel costrutto seguente:

if rem(n,2) ~= 0
   M = odd_magic(n)
elseif rem(n,4) ~= 0
   M = single_even_magic(n)
else
   M = double_even_magic(n)
end

In questo esempio, i tre casi sono mutuamente esclusivi, ma se non lo fossero, la prima condizione vera sarebbe comunque eseguita. Tutto ciò è importante per capire come gli operatori relazionali e le strutture if lavorano con le matrici.

Quando si vuole controllare l’uguaglianza tra due variabile, usare:

if A == B, ….

Questo è consentito in MATLAB, e fa quello che ci si aspetta quando A e B sono scalari. Ma quando A e B sono matrici, A == B non esamina se loro sono uguali, esamina solo dove loro sono uguali; il risultato è un altra matrice di 0 e di 1 che espone l’uguaglianza elemento per elemento.

Istruzione IF in Matlab

Infatti, se A e B non sono della stessa taglia, allora l’istruzione A == B è un errore. Il modo corretto per controllare l’uguaglianza tra due variabile è quello di usare la funzione isequal:

if isequal(A,B), …

Qui c’è un altro esempio per enfatizzare questo punto. Se A e B sono scalari, il programma seguente mai arriverà alla situazione inaspettata. Ma per la maggior parte delle matrici, includendo le nostre magic square con colonne scambiate nessuna delle condizioni seguenti A> B, A< B o A == B è vero per tutti gli elementi e così l’altra clausola è eseguita.

if A > B
   ‘greater’
elseif A < B
   ‘less’
elseif A == B
   ‘equal’
else
   error(‘Unexpected situation’)
end

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Il Comando DIARY in Matlab

MATLAB

Il comando diary in Matlab crea un’agenda della sessione di MATLAB in un file immagazzinato nel disco fisso del computer. E’ possibile esplorare e compilare il file di testo con un qualsiasi word-processor. Per creare un file diary che contenga tutti i comandi basterà digitare al prompt di Matlab:

>>diary

Per salvare l’intera sessione di MATLAB in un archivio con un particolare nome, utilizzeremo la seguente notazione:

>>diary filename

Per bloccare la registrazione della sessione corrente, invece digiteremo:

>>diary off

La funzione diary quindi crea un elenco degli input da tastiera e registra il testo risultante in un file, con alcune eccezioni. Il file ottenuto con il comando diary è un file ASCII, adatto per la ricerca in, la stampa, l’inserimento nella maggior parte delle relazioni e altri documenti. Se non si specifica il nome del file, il software MATLAB crea un file chiamato diary nella cartella corrente.

Il Comando DIARY in Matlab

Il comando diary (‘filename’) scrive una copia di tutti gli input da tastiera successivi al comando nel file chiamato appunto nomefile, dove nomefile è il percorso completo o il nome del file si trova nella cartella MATLAB corrente. Se il file esiste già, l’output viene aggiunto alla fine del file. Non è possibile utilizzare un nome di file chiamato o disattivarlo. Per visualizzare il nome del file diary corrente, utilizzare il comando:

>>get (0, ‘DiaryFile’)

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Il comando dir in Matlab

MATLABAnalizziamo il comando dir in Matlab che elenca i file e le cartelle presenti nella cartella corrente di MATLAB. I risultati vengono visualizzati in un ordine che dipende dal sistema operativo.

Il comando seguente:

> dir nome

elenca i file e le cartelle che corrispondono al nome fornito sottoforma di stringa. Quando il nome è una cartella, dir elenca il contenuto della cartella. Specificare il nome usando i nomi di percorso assoluti o relativi. È possibile utilizzare i caratteri jolly (*). Il comando:

lista = dir (nome)

restituisce gli attributi relativi a nome.

il comando dir in matlab

Vediamo alcuni esempi di applicazione del comando dir in Matlab, per visualizzare il contenuto della cartella matlab/audiovideo scriveremo, che si trova nella cartella corrente di Matlab:

dir(fullfile(matlabroot, ‘toolbox/matlab/acustica’))

Vediamo invece come ricercare delle informazioni ed ottenere i risultati in una forma strutturata: ad esempio se volessimo immagazzinare nella variabile files tutti i file contenuti in una specifica cartella con esetensione .m scriveremo

files = dir(fullfile(matlabroot, ‘toolbox/matlab/acustica/*.m’))

MATLAB fornisce le informazioni in un structure array del tipo:

files =
25×1 struct array with fields:
name
date
bytes
isdir
datenum

Per accedere ad uno specifico item invece scriveremo:

files(3).name
ans =
acustica.m

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Python Interactive Shell

python

Per avviare Python o più correttamente per aprire la Python Interactive Shell basterà cliccare sul menu Start per trovare l’icona della shell già pronta tra i programmi di uso frequente, oppure basterà cliccare su Tutti i programmi quindi sulla voce Active State Active Python 3.1.

Dopo aver attivato la Python Interactive Shell ci troveremo a disposizione una finestra nella quale sarà possibile digitare da linea di comando le nostre istruzioni python. Iniziamo a tal proposito con il classico messaggio che i programmatori usano inviare alla shell per testarne il regolare funzionamento; mi riferisco al più classico dei messaggi: “Hello World”.

Per poter visualizzare un messaggio dalla shell sarà necessario stamparlo, ed allora quale poteva essere il comando che ci permette di fare questo se non print (che tradotto in italiano vuol dire stampa), questo a conferma del fatto che leggere del codice Python equivale a leggere un comune listato in lingua inglese.

Allora per visualizzare sul prompt dei comandi il messaggio “Hello World” basterà digitare la seguente istruzione:

print(‘Hello World’) 

per ottenere la stampa del messaggio come riportato nella figura.

Python Interactive Shell

Fatto questo vediamo ora come ricevere un primo ed immediato aiuto proprio dalla shell interattiva di Python; infatti all’apertura della shell viene visualizzato il seguente messaggio:

ActivePython 3.1.2.3 (ActiveState Software Inc.) based on

Python 3.1.2 (r312:79147, Mar 22 2010, 12:30:45) [MSC v.1500 64 bit (AMD64)] on

win32

Type “help”, “copyright”, “credits” or “license” for more information.

>>> 

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Installare Python dal codice sorgente su Linux

python

Vediamo ora come installare Python dal codice sorgente su Linux e compilandolo sulla nostra macchina. Se non si dispone di un gestore di pacchetti, o piuttosto non se ne fa uso, è possibile compilare Python per ottenere una versione fatta da noi. Questa può essere una scelta obbligata ad esempio se ci si trova su una macchina UNIX, senza l’accesso come root.

Questo metodo è molto flessibile, e consente di installare Python ovunque si desideri, anche nella nostra home directory. Per compilare e installare Python, basterà seguire i seguenti passaggi:

  • visitare il sito al seguente url: http://www.python.org/download/;
  • seguire le istruzioni per scaricare i sorgenti;
  • scarica il file con estensione. Tgz. e salvare in una posizione temporanea. Ipotizzando che si desidera installare Python nella nostra home directory, si consiglia di metterlo in un directory con nome ~ / python;
  • spostarsi in questa directory (ad esempio, utilizzando il comando cd ~ / Python);
  • scompattare l’archivio con il comando tar -xzvf Python-3.1.2.tgz (dove 3.1.2 è il numero della versione del codice sorgente scaricato);
  • se la nostra versione di tar non supporta l’opzione z, è possibile decomprimere l’archivio con il comando gunzip prima, per poi utilizzare il comando tar -xvf. Se c’è qualcosa che non va con l’archivio, provare a scaricarlo di nuovo. A volte si verificano errori durante il download.
  • spostarsi nella directory in cui è stato spacchettato il sorgente con il comando $ Cd Python-3.1.2
  • a questo punto eseguire i seguenti comandi:

. / Configure – prefix = $ (pwd)

make

make install

la procedura di compilazione terminerà con la creazione di un file eseguibile denominato Python posizionato nella directory corrente. (Se si dovessero vericare degli errori in fase di compilazione  consultare il file README incluso nella distribuzione.)

Installare Python dal codice sorgente su Linux

  • ora basterà aggiungere la directory corrente nella variabile d’ambiente PATH, e si sarà pronti a partire.
  • per conoscere le altre direttive di configurazione, eseguire questo comando: . / Configure – help

Dopo aver visto come installare Python dal codice sorgente, per avviarlo basterà digitare al prompt di Linux il comando:

python

per entrare nella Linux interactive shell.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Come installare Python su Linux

python

Vediamo ora come installare Python su Linux, in verità nella maggior parte delle installazioni Linux, è già presente un interprete Python. È possibile verificare se questo è vero anche nel nostro caso, eseguendo il comando Python nel prompt di Linux:

$ python

L’esecuzione di questo comando dovrebbe avviare l’interprete interattivo di Python, con un output simile a quello di seguito riportato:

Python 2.4.3 (#2, Apr 27 2006, 14:43:58)

[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2

Type “help”, “copyright”, “credits” or “license” for more information.

>>>

Da questo momento in poi potremo iniziare ad utilizzare Python in modalità interattiva; per uscire dall’interprete basterà digitare la combinazione di tasti ctrl + d.

Se al contrario l’interprete Python non è installato, probabilmente si otterrà un messaggio di errore simile al seguente:

bash: python: command not found

In questo caso dovremo procedere ad installare Python su Linux; anche se è difficile che nelle nuove versioni di Linux non sia presente una versione dell’interprete visto il massiccio uso che le applicazioni Linux fanno di Python.

python

Comunque nel caso non fosse presente sarà necessario installarlo; allora avremo a disposizione due possibilità:

  1. utilizzare un Package Manager;
  2. compilare il programma dai file sorgente.

Nel primo caso le cose sono estremamente semplici ed immediate, infatti basterà autenticarsi con i privilegi di amministratore ed utilizzare uno dei programmi a corredo di Linux per installare la versione più recenti di Python. Ad esempio su una distribuzione Debian basterà digitare:

$ apt-get install python

mentre su una distribuzione Gentoo Linux:

$ emerge python

ed infine su ubuntu:

$ sudo apt-get install python

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Come installare Python su Mac Os

python

Dopo aver proposto una Guida all’installazione di Python in ambiente Windows, in questa lezione vedremo nel dettaglio come installare Python su Mac Os, analizzando attentamente ogni passaggio in modo da eseguire l’intera procedura senza difficoltà e nel minor tempo possibile. In ambiente Mac le cose sono ancora più semplici, e questo è dovuto al fatto che nelle versioni recenti del Mac OS X, una versione di Python è già installata con il sistema operativo.

Per verificarlo e per avere informazioni sulla versione che è attualmente installata basta aprire l’applicazione Terminale (attraverso il seguente percorso: Finder è Applicazioni è Utility è Terminale) e digitare il comando Python -V.

Ad esempio se ci troviamo su Mac Os X versione 10.4.11 la finestra di terminale ci risponderà con qualcosa di simile:

Last login: Mon Jul 19 15:31:39 on ttyp1

Welcome to Darwin!

Mac-Giuseppe:~giuseppe$ Python -V

Python 2.3.5

A dimostrazione del fatto che la versione attualmente installata sul Mac in uso è la 2.3.5. Anche se si desidera installare una versione più recente di Python, è importante lasciare questa versione, questo perché Python è utilizzato in varie parti del sistema operativo e quindi la sua rimozione pregiudicherebbe il normale funzionamento della macchina.

python

Vediamo allora come aggiungere a questa una versione più recente; per farlo basterà visitare il sito al seguente url:

http://www.python.org/download/

e scaricare la versione più recente disponibile, facendo attenzione a selezionare la versione corretta per il nostro sistema operativo. Al momento di stesura di questo libro la versione più recente è:

Python 3.1.2 Mac OS X Installer Disk Image (for Mac OS X 10.3 through 10.6)

che rappresenta l’immagine del disco Python-OSX, fatto questo se il vostro browser non l’ha già fatto, cliccate due volte su MacPython-OSX-3.1.2.dmg per fare il mount dell’immagine del disco sul vostro desktop. Da questo momento in poi basterà seguire le indicazioni di seguito riportate:

  • Fate doppio click sul programma di installazione, Python.pkg.
  • Il programma di installazione vi richiederà il nome utente e la password dell’amministratore.
  • Seguite le istruzioni del programma di installazione.
  • Dopo che l’installazione è stata completata, chiudete il programma di installazione ed aprite la cartella Applicazioni.
  • Aprite la cartella Python 3.1.2.
  • Fate doppio click su IDLE per lanciare Python.

Ricordiamo infine che seguendo la procedura appena indicata, avremo aggiunto una versione più recente alla versione già a corredo del sistema operativo, ciò per ribadire che in questo modo saranno presenti due versioni.

Per avviare la versione più recente sarà necessario aprire la cartella Python 3.1.2 presente nella cartella Applicazioni e cliccare sull’icona della idle di Python, in questo modo potremo verificare che la guida su come installare Python su Mac Os sia stata utile.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Guida all’installazione di Python

python

In questa lezione forniremo una vera e propria guida all’installazione di Python utilizzando le risorse fornite dal sito ufficiale della distribuzione Python. Come sempre l’operazione preliminare da effettuare è quella di collegarsi al sito della distribuzione, nel nostro caso in corrispondenza del seguente url:

http://www.python.org/

Selezionare dal menu di navigazione la voce download e quindi scegliere la distribuzione tra quelle più recenti, come già accennato sceglieremo la versione 3.4.2, per la quale avremo una serie di distribuzioni in funzione della piattaforma adottata. Nel nostro caso sceglieremo l’installer di Windows e dopo aver cliccato sulla voce relativa, partirà il download, alla fine del quale avremo sul nostro hard disk il file.

python

Allora basterà cliccare due volte sul file per iniziare la procedura, attraverso la quale seguendo le istruzioni dell’installer, assisteremo all’installazione dell’interprete Python sul nostro computer. Nel caso non avessimo spazio sufficiente, potremmo deselezionare il file HTMLHelp, gli script di utilità (Tools/) e/o la raccolta di test (Lib/test/), ma anche in questo caso il consiglio è quello di installare tutto.

Se non si dispone dei diritti di amministratore sulla macchina, potete selezionare le opzioni avanzate (Advanced Options …) e selezionare l’installazione per non-amministratori (Non-Admin Install). Questo va ad influire solo sulla posizione delle chiavi nel registro e sulla creazione delle scorciatoie dei menu.

python

Una volta completata l’installazione, e dopo aver chiuso l’installer potremo avviare l’interprete Python attraverso il seguente percorso:

Start > Programs > Python 3.4 > IDLE (Python GUI)

Da questo momento potremo iniziare ad interagire con l’ambiente integrato appena installato. Spero che questa guida all’installazione di Python vi sia stata utile per iniziare a programmare in Python.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Link a risorse consigliate:

Istruzioni OPEN nel Fortran


FORTRANL’istruzione OPEN nel Fortran associa un file ad un numero di unità di ingresso/uscita. Ha la seguente sintassi:

OPEN(UNIT=num,FILE=’nome ‘,STATUS=’stato’, ACTION= spec, FORM=’fm’, IOSTAT= var)

 Analizziamo nel dettaglio le specifiche contenute nel comando:

  1. UNIT= num – Indica il numero di unità i/o da associare al file, num è un numero intero non negativo.
  2. FILE= nome – Specifica il nome del file da aprire.
  3. STATUS= stato – Specifica lo stato del file da aprire, dove stato può essere: OLD , NEW , REPLACE , SCRATCH , UNKNOWN
  4. ACTION= spec – Specifica se il file deve essere aperto soltanto in lettura,in scrittura o in entrambe le modalità. Dove spec può essere: READ , WRITE , READWRITE
  5. FORM=’fm’ – Specifica che il file conterrà gli usuali caratteri (lettere, numeri, segni di punteggiatura, ecc.) in modo che il programmatore possa leggere il file
  6. IOSTAT= var – Specifica il nome di una variabile intera in cui può essere restituito lo stato dell’operazione OPEN. Dove var è un intero; se l’operazione OPEN ha successo var = 0  altrimenti var > 0.

Analizziamo allora un esempio:

OPEN(UNIT=1,FILE=’PRIMO.DAT’,STATUS=’OLD’,ACTION=’READ’,IOSTAT=’var’)

Tale operazione apre il file PRIMO.DAT e lo associa all’unità numero 1, STATUS=’OLD’ specifica che l’unità esiste già, ACTION=’READ’indica che il file può essere solo letto, IOSTAT=’var’ per il controllo degli errori.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO:

Istruzione READ nel Fortran


FORTRANL’istruzione READ nel Fortran ci consente di leggere uno o più dati dal buffer di input. L’unità nella quale andremo a leggere i dati è specificata dall’apposito numero presente nell’istruzione. Analizziamo nel dettaglio l’esempio che vi propongo:

READ(*,10) var 10 FORMAT (5X, I3)

esso indica di leggere da video (è presente l’asterisco), saltando le prime 5 colonne del buffer di input e utilizzando le seguenti 3 colonne per leggere un numero intero. Al posto dell’asterisco poteva trovarsi ad esempio il numero 1 allora si sarebbe eseguita l’operazione di lettura sull’unità 1.

Il formato dell’istruzione READ è il seguente:

READ(UNIT=u,FMT=f,ERR=e,END=d)lista di variabili

dove  u è un numero intero che assume ha la funzione di specificare l’indirizzamento della scrittura e cioè sul terminale (UNIT=6) oppure sul disco; mentre FMT=f, dove “f” è un numero intero, indica al computer di scrivere i dati con il formato specificato dall’istruzione FORMAT individuata dall’etichetta con il numero “f”;

Le specifiche ERR=e e END=d sono opzionali; in particolare la specifica ERR=e ha la funzione di far continuare l’esecuzione dalla riga etichettata con “e” se avviene un errore in lettura. Nella istruzione READ c’è anche un’ altra possibilità di errore, che capita quando, leggendo nel disco magnetico, si arriva alla fine del file di lettura; se si prova a leggere altri dati, il computer, non sapendo dove prenderli, sospenderà l’esecuzione.

Mentre la specifica END=d indica al computer di continuare l’esecuzione dalla riga etichettata con “d“. In questo modo si evita l’errore che capita quando, leggendo nel disco magnetico, si arriva alla fine del file di lettura; se si prova a leggere altri dati, il computer, non sapendo dove prenderli, sospenderà l’esecuzione.

LINK DI APPROFONDIMENTO PER L’ARGOMENTO: