e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla...

86
Ripasso Generale e creare HTML/PDF e GUI Renato Mainetti

Transcript of e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla...

Page 1: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Ripasso Generalee creare HTML/PDF e GUI

Renato Mainetti

Page 2: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Introduzione a Matlab

Concetti importanti:

• Cos’ è Matlab

• Variabili

• Script

• Funzione

• Salvataggio WorkSpace

Ripasso Generale - GUI e HTML/PDF - Lezione 11

2

Page 3: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Matlab questo sconosciuto(abbreviazione di Matrix Laboratory)

• Cos’è ?• E’ un ambiente (software) nato per il calcolo numerico e

l'analisi statistica.

• A cosa serve?• Permette di eseguire calcoli matematici, simulazioni, analisi

dei dati, visualizzazione di grafici e sviluppo di algoritmi.

• Cosa ci faremo?• Useremo alcune funzioni di base e alcuni tool-box per

avvicinarci al mondo dell’IA.

• Come scaricarlo e usarlo anche a casa?• Studenti UNIMI hanno la possibilità di scaricarlo e installarlo

su un PC per uso personale.• http://www.unimi.it/ateneo/80207.htm guida per

installazione

Ripasso Generale - GUI e HTML/PDF - Lezione 11

3

Page 4: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Cos’è una variabile?

Ripasso Generale - GUI e HTML/PDF - Lezione 11

4

Una variabile è una zona di memoria identificata attraverso un nome(combinazione lettere e digit) in cui è possibile memorizzare delle informazioni (numeri, array, oggetti).

Page 5: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Assegnamento di una variabile

• In matlab l’operatore di assegnamento è =

• Per creare una variabile eseguirò da riga di comando:

>> var1 = 10

• Posso assegnare anche una formula:

>> var2 = (3-1)*5 + var1

• La variabile, una volta assegnata compare nel Workspace.

• E’ ora possibile richiamare il valore contenuto nella variabile, utilizzandola in formule e programmi.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

5

Page 6: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Esempio di creazione esecuzione script

• Creazione:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

6

Page 7: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Esempio di creazione esecuzione script

• Creazione:

disp('Questo è il nostro primo script in Matlab')

disp('Di solito però si inizia con "Hello World!"')

a = input('Inserisci un numero da elevare al quadrato: ');

b = a*a;

disp(['Il risultato è: ' num2str(b)])

N.B: Se non conosciamo un comando, possiamo usare help.

Esempio:

>> help input

Ripasso Generale - GUI e HTML/PDF - Lezione 11

7

Page 8: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Esempio di creazione esecuzione script

• Esecuzione:

>> firstScript

Questo è il nostro primo script in Matlab

Di solito però si inizia con "Hello World!"

Inserisci un numero da elevare al quadrato: 3

Il risultato è: 9

N.B: Verificare il folder attuale, se siamo nel folder dove è contenuto il file .m è possibile usare la funzione di autocompletamento. (tab)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

8

Page 9: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

E se usassimo una funzione invece di uno Script?

• Una funzione può ricevere dei dati in ingresso e restituirne in uscita.

• E’ più flessibile

• Una funzione è composta da:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

9

Function a = triarea(b,h)

Parola chiave output Nome funzione

input

Page 10: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

La funzione:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

10

function a = triarea(b,h)

a = (b*h)/2;

Può essere richiamata da riga di comando:

>> A = triarea(5,6);

N.B: Attraverso i commenti nella funzione è possibile scrivere la documentazione che viene mostrata attraverso il comando help

Page 11: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Salviamo il WorkSpace

• Può capitare di aver eseguito diverse operazioni e aver creato e memorizzato un elevato numero di variabili.

• Se spegniamo matlab senza salvare il workspacequeste informazioni però vanno perse.

• Per salvare il workspace corrente:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

11

Viene generato un file .mat

Page 12: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Introduzione alla programmazione

Concetti importanti:

• Programmazione

• Algoritmo

• Programmazione strutturata• Sequenziale

• Condizionale (IF/ELSE - SWITCH)

• Iterativa (FOR - WHILE)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

12

Page 13: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Cos’è la programmazione

La programmazione, in informatica, è l'insieme delle attività e tecniche che una o più persone specializzate, programmatori o sviluppatori (developer), svolgono per creare un programma, ossia un software da far eseguire ad un computer, scrivendo il relativo codice sorgente in un certo linguaggio di programmazione. (cit. Wikipedia)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

13

Page 14: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Cos’è un algoritmoUn algoritmo è un procedimento che risolve un determinato problema attraverso un numero finito di passi elementari.

L'algoritmo è un concetto fondamentale dell'informatica, anzitutto perché è alla base della nozione teorica di calcolabilità: un problema è calcolabile quando è risolvibile mediante un algoritmo.

L'algoritmo è un concetto cardine della fase di programmazione dello sviluppo di un software: preso un problema da automatizzare, la programmazione costituisce essenzialmente la traduzione o codifica di un algoritmo per tale problema in programma, scritto in un certo linguaggio, che può essere quindi effettivamente eseguito da un calcolatore. (cit: Wikipedia)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

14

Page 15: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Testiamo il risultato:

Punti chiave:

• Sequenza di istruzioni elementari per raggiungere uno scopo.

• Le istruzioni vanno eseguite nel giusto ordine.

• Il nostro senso comune non coincide con quello del computer.

• E’ possibile che esistano più vie per arrivare al risultato desiderato.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

15

Page 16: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Programmazione strutturata:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

16

Sequenziale Condizionale Iterativa

Il Teorema di Bohm-Jacopini afferma:“qualsiasi algoritmo può essere definito usando esclusivamente le strutture di sequenza, di selezione e di iterazione”.

https://en.wikibooks.org/wiki/MATLAB_Programming/Control_Flow

Page 17: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

IF - IF/ELSE :

Ripasso Generale - GUI e HTML/PDF - Lezione 11

17

Condizionale

PROBLEMA 1: Dati due numeri, mostrare se il primo è maggiore o minore del secondo. (usare solo IF)

PROBLEMA 2: Dati due numeri, mostrare se il primo è maggiore o minore del secondo. (usare IF/ELSE).Cosa abbiamo guadagnato ad usare ELSE ?

PROBLEMA 3: Dati due numeri, mostrare se il primo è maggiore o minore del secondo e contemplare il caso di uguaglianza. (usare IF/ELSEIF/ELSE).

Page 18: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

SWITCH:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

18

Condizionale

PROBLEMA 4: Scrivere un programma che mostri il colore attuale di un semaforo. Il programma riceve in input un valore tra {1,2,3} e in base al numero ricevuto scrive il nuovo colore del semaforo. {Rosso,Giallo,Verde}

N.B: se usiamo «otherwise» anche altri numeri andranno bene per il verde.

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

switch ncase -1

disp('Uno Negativo')case 0

disp('Zero')case 1

disp('Uno Positivo')otherwise

disp('Altro valore')end

Page 19: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

FOR:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

19

Iterativafor i = 1:5

…fai qualcosa…end

PROBLEMA 5: Scrivere un programma che mostri il colore attuale di un semaforo per 5 volte. Il programma riceve in input un valore tra {1,2,3} e in base al numero ricevuto scrive il nuovo colore del semaforo. {Rosso,Giallo,Verde}

Page 20: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

WHILE:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

20

Iterativa while n>0…fai qualcosa…

end

PROBLEMA 6: Scrivere un programma che mostri il colore attuale di un semaforo per infinte volte, a meno che non intervenga una condizione di arresto. Il programma riceve in input un valore tra {1,2,3} e in base al numero ricevuto scrive il nuovo colore del semaforo. {Rosso,Giallo,Verde}

N.B: usiamo «otherwise» come condizione di arresto.

Page 21: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

FSM – Macchine a stati finiti

Concetti importanti:

• Simulazione di un oggetto/concetto complesso

• Stato iniziale

• Stati della macchina

• Transizioni

• STG – Grafico delle transizioni di stato

• STT – Tabella delle transizioni di stato

Ripasso Generale - GUI e HTML/PDF - Lezione 11

21

Page 22: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

FSM

Ripasso Generale - GUI e HTML/PDF - Lezione 11

22

Page 23: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Matlab cosa ci regala ?

Ripasso Generale - GUI e HTML/PDF - Lezione 11

23

StateFlow: http://it.mathworks.com/products/stateflow/

Stateflow® consente di modellare il modo in cui il sistema reagisce a eventi, condizioni temporali e segnali di stimolo esterni.

Page 24: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

FSM Matlab On-Off

Ripasso Generale - GUI e HTML/PDF - Lezione 11

24

Componenti evidenziati in rosso da sinistra verso destra:• «Constant» Valori costanti -> utilizzati come valore di input della macchina• «switch» Interruttore -> seleziona quale valore inviare alla macchina• «Chart» Rappresenta la nostra FSM, contiene stati e transizioni (doppio click per entrare

nella vista interna alla FSM)Internamente a «Chart» troviamo:• Stato -> rappresenta uno stato della fsm, può essere aggiunto con il bottone a forma

quadrata sulla barra di sinistra.• Transizioni -> dato lo stato attuale della fsm, se la condizione di verità si verifica modifica

lo stato della FSM e passa ad un nuovo stato (indicato dalla freccia)• Stato iniziale del sistema -> si può selezionare con il tasto freccia nel menù a sinistra

Aggiunge un nuovo stato

Stato iniziale

Page 25: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

FSM Tamagotchi

• Cambiamo gli stati d’animo del tamagotchi

Ripasso Generale - GUI e HTML/PDF - Lezione 11

25

Grafo delle transizioni di stato

Page 26: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

STT – Tabella Transizioni Stato

Ripasso Generale - GUI e HTML/PDF - Lezione 11

26

Se invece di «Chart» usiamo la TTS, inseriamo le stesse informazioni utilizzate per costruire lo STG ma in forma differente. Nella tabella a sinistra «States» possiamo aggiungere nuovi stati, e sulla destra in «transition» possiamo aggiungere condizioni di verità e il nuovo stato in cui andare al verificarsi di quella condizione. Matlab è in grado di ricostruire

Page 27: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Fuzzy system

Concetti importanti:

• Fuzzificazione

• Fuzzy associative memory (FAM - regole)

• Defuzzificazione

Ripasso Generale - GUI e HTML/PDF - Lezione 11

27

Page 28: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Fuzzy Toolbox

Ripasso Generale - GUI e HTML/PDF - Lezione 11

28

Fuzzy Logic Toolbox™ fornisce funzioni, applicazioni e un blocco Simulink per progettare, implementare e testare un sistema basato sulla logica fuzzy.

Questo toolbox ci permette di modellare sistemi complessi, usando delle semplici regole logiche che vanno poi inserite nel Sistema di inferenza fuzzy.

Questo toolbox può essere usato in modalità stand alone, è possibile costruire un’app ed infine è anche possibile realizzare un blocco Simulink per utilizzarlo in una simulazione di processo dinamico.

Page 29: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Componenti sistema Fuzzy:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

29

• Cibo• servizio

• Mancia

FAM – regole di decisione

Page 30: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Definiamo il problema:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

30

Abbiamo cenato al ristorante, prima di andare via vogliamo lasciare una mancia al cameriere ma non sappiamo quanto lasciare. Proviamo a basarci su queste due considerazioni:

• La qualità del cibo• Da 0 = pessimo• A 10 = paradisiaco

• La qualità del servizio• Da 0 = film horror• A 10 = impeccabile

Page 31: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Modifichiamo gli elementi del sistema fuzzy:

Eseguendo doppio click su un oggetto tra quelli citati si apre una nuova finestra che ne permette la modifica.

Per esempio:

doppio click su input1 aprirà una nuova finestra, dal titolo Membership functioneditor, che ci permetterà di modificare l’input input0.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

31

Page 32: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Vediamo i risultati:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

32

View -> Surface View -> Rules

Page 33: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Vettori, matrici e grafi

Concetti importanti:

• Vettore

• Matrice

• Grafo

• Albero

Ripasso Generale - GUI e HTML/PDF - Lezione 11

33

Page 34: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Vettore

Ripasso Generale - GUI e HTML/PDF - Lezione 11

34

Si può immaginare un vettore(array) come una sorta di contenitore , le cui caselle sono dette celle dell'array stesso. Ciascuna delle celle si comporta come una variabile tradizionale che rappresenta un elemento dell'array; tutte le celle sono variabili di uno stesso tipo preesistente, detto tipo base dell'array. Si parlerà perciò di tipi come "array di interi", "array di stringhe", "array di caratteri" . (wikipedia)

In informatica:

4 2 9 7 1

Page 35: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Vettori in Matlab:Possono essere inseriti come righe o come colonne:Riga:

vetRiga = [1 2 3 4 5];

vetRiga = [1,2,3,4,5];Colonna:

vetColonna = [1;2;3;4;5];

Proviamo ora ad inserire un array da 1 a 20.

Ci vuole tempo vero?

E se vi dicessi che ci serve un array di 1000 elementi?

Ripasso Generale - GUI e HTML/PDF - Lezione 11

35

Page 36: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Matrici:

Sono fondamentalmente vettori bidimensionali

Ripasso Generale - GUI e HTML/PDF - Lezione 11

36

a1,1 a1,2 a1,3

a2,1 a2,2 a2,3

a3,1 a3,2 a3,3

am,n

Matrice m x n

m r

igh

e

N colonne

Page 37: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Matrici in matlab:

Inseriamo una matrice in matlab:

mat = [1 2 3; 4 5 6; 7 8 9];

Stiamo sfruttando le due tecniche usate prima, ovvero inserimento righe e inserimento colonne contemporaneamente.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

37

Page 38: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

GRAFO:Un grafo è un insieme di elementi detti nodi o vertici che possono essere collegati fra loro da linee chiamate archi o lati o spigoli. (wiki)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

38

Si distinguono due tipi basilari di grafi, i grafi orientati (o grafi diretti) e i grafi non orientati (o grafi indiretti).Un "grafo non orientato" è un insieme di vertici e archi dove la connessione A - B ha lo stesso significato della connessione B – A (non è importante la direzione)

Page 39: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

ALBERO:Un albero è un grafo: non orientato nel quale due vertici qualsiasi sono connessi da uno e un solo cammino (grafo non orientato, connesso e privo di cicli). (wiki)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

39

Page 40: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Mappa semplificata della Romania

Ripasso Generale - GUI e HTML/PDF - Lezione 11

40

Page 41: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Con lo script indicato e Matlab 2015b o 2016a

Otteniamo un grafo così:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

41

Possiamo ricercare la strada più breve tra due nodi ed evidenziarla.

Page 42: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Decision-tree

Concetti importanti:

• Decisione e strumenti di supporto alla decisione

• Alberi di decisione in teoria delle decisioni

• Alberi di decisione nel machine learning

Ripasso Generale - GUI e HTML/PDF - Lezione 11

42

Page 43: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Riflessioni:• Una decisione è una scelta tra alternative. La decisione

viene presa stimando l’esito delle altre alternative

• Supportare in una decisione significa aiutare le persone ad accumulare intelligenza su quel problema, trovare alternative e prendere una decisione.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

43

Page 44: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Elementi di una decisione razionale:

• Identificare il goal che vogliamo raggiungere con quella decisione

• Identificare tutte le opzioni disponibili

• Valutare il possibile risultato di ogni opzione

• Scegliere quale opzione è la migliore

• …Eseguire la scelta

Ripasso Generale - GUI e HTML/PDF - Lezione 11

44

Page 45: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Alberi di Decisione (Wikipedia)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

45

Nella teoria delle decisioni (per esempio nella gestione dei rischi), un albero di decisione è un grado di decisioni e delle loro possibili conseguenze, (incluso i relativi costi, risorse e rischi) utilizzato per creare un 'piano di azioni' (plan) mirato ad uno scopo (goal). Un albero di decisione è costruito al fine di supportare l'azione decisionale (decision making).

Nel machine learning un albero di decisione è un modello predittivo, dove ogni nodo interno rappresenta una variabile, un arco verso un nodo figlio rappresenta un possibile valore per quella proprietà e una foglia il valore predetto per la variabile obiettivo a partire da i valori delle altre proprietà, che nell'albero è rappresentato dal cammino (path) dal nodo radice (root) al nodo foglia. Normalmente un albero di decisione viene costruito utilizzando tecniche di apprendimento a partire dall'insieme dei dati iniziali (data set), il quale può essere diviso in due sottoinsiemi: il training set sulla base del quale si crea la struttura dell'albero e il test set che viene utilizzato per testare l'accuratezza del modello predittivo così creato.

Page 46: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Decision-Making Fasi e Passi

• Intelligenza• Raccolta informazioni e dati• Riconoscimento del problema

• Design• Formulazione del modello• Analisi del modello

• Scelte• Generazione e Valutazione• Selezione

Ripasso Generale - GUI e HTML/PDF - Lezione 11

46

Page 47: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Albero di decisione(Teoria delle decisioni)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

47

50% Successo 100 Euro

50% Fallimento -30 Euro

50% Successo 90 Euro

50% Fallimento -10 Euro

50%(100) + 50%(-30) = 35 Euro

50%(90) + 50%(-10) = 40 Euro

Page 48: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Introduzione alla probabilitàInferenza Bayesiana

Concetti importanti:

• Legge dei grandi numeri

• Probabilità marginale

• Probabilità condizionata

• Inferenza Bayesiana

• Variabili aleatorie discrete e continue

• PDF - CDF

Ripasso Generale - GUI e HTML/PDF - Lezione 11

48

Page 49: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Legge dei Grandi Numeri

La legge dei grandi numeri, detta anche legge empirica del caso oppure teorema di Bernoullidescrive il comportamento della media di una sequenza di n variabili casuali indipendenti e caratterizzate dalla stessa distribuzione di probabilità (n misure della stessa grandezza, n lanci della stessa moneta ecc.) al tendere ad infinito della numerosità della sequenza stessa (n) (wiki)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

49

Page 50: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Testa o Croce?

Vogliamo realizzare una funzione in Matlab che ci permetta di simulare il processo di tirare una moneta e analizzarne l’esito.

Proviamo a capire cosa fa la funzione di Matlab rand:

>> help rand

Ripasso Generale - GUI e HTML/PDF - Lezione 11

50

Page 51: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

rand:

Uniformly distributed pseudorandom numbers.

Eseguendo il comando:

>>rand

Otteniamo un numero casuale tra (0 e 1). (intervallo aperto)

Matlab in pratica suddivide l’intervallo tra 0 e 1 uniformemente, restituendo un valore di questo intervallo. Tutti i sotto intervalli sono equiprobabili.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

51

Page 52: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Perché pseudo-random?

Perché i numeri sono generati da un algoritmo deterministico che produce una sequenza.

Proviamolo!

L’algoritmo di generazione può essere inizializzato con un seme (seed).

Normalmente matlab all’avvio setta il seed a 0.

Per vedere l’attuale valore del seed eseguiamo:

>> rng

Ripasso Generale - GUI e HTML/PDF - Lezione 11

52

Page 53: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Funzione moneta:

Dopo aver visto come estrarre una sequenza di numeri casuali tra 0 e 1, ci chiediamo come sia possibile trasformare ogni evento di estrazione in un risultato che indichi Testa o Croce.

Idee ?

Ripasso Generale - GUI e HTML/PDF - Lezione 11

53

Page 54: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Simulazione del tiro di dadi

Proviamo ora a simulare il tiro di due dadi, per poter analizzare empiricamente le probabilità legate a questo evento.

Come possiamo fare?

Idee su qualche funzione di arrotondamento?

La funzione round?

Ripasso Generale - GUI e HTML/PDF - Lezione 11

54

Page 55: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Statistiche volatili:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

55

30% 20%

10% 40%

Marroni Bianchi

Piccioni

Gabbiani

Page 56: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Statistiche volatili:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

56

30% 20%

10% 40%

Marroni Bianchi

Piccioni

Gabbiani

40% 60%

50%

50%

Marginale colore

(somma elementi colonna)

Marginale specie(somma elementi riga)

Page 57: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Probabilità condizionata e congiunta:

P(a | b) = P(a AND b) / P(b) P(a AND b) è probabilità congiunta

• Vediamo un volatile di un colore ma non sappiamo riconoscere la specie… cosa facciamo ?

• Probabilità condizionate di specie dato il colore :

Ripasso Generale - GUI e HTML/PDF - Lezione 11

57

75% 33%

25% 67%

Marroni Bianchi

Piccioni

Gabbiani

Page 58: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Distribuzione di probabilità:(probability distribution function)

Ci permette di descrivere in termini probabilistici un fenomeno aleatorio nel tempo, cioè che sia caratterizzato da una variabile aleatoria. (wiki)

• Per prima cosa iniziamo a distinguere il caso discreto dal caso continuo.• Variabile aleatoria discreta -> moneta, dadi, etc.

• Variabile aleatoria continua -> altezza persone, dimensione pesce, etc.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

58

Page 59: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Variabile aleatoria discreta

• L’insieme dei possibili valori(esito) è finito, numerabile, discreto.

• Nel lancio della moneta ho due eventi possibili (T/C) Pt = ½; Pc = ½;

• Nel lancio dei dadi ho 6 eventi possibili (1,2,3,4,5,6) Pn = 1/6;

Ripasso Generale - GUI e HTML/PDF - Lezione 11

59

Page 60: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Funzione di ripartizione(cumulative distribution function)

• Ci aiuta a studiare le distribuzioni di probabilità

• Esempio del dado:

F(X1) = 1/6F(X2) = 1/6 + 1/6 = 2/6F(X3) = 1/6 + 1/6 + 1/6 = 3/6F(X4) = 1/6 + 1/6 + 1/6 + 1/6 = 4/6F(X5) = 1/6 + 1/6 + 1/6 + 1/6 + 1/6 = 5/6F(X6) = 1/6 + 1/6 + 1/6 + 1/6 + 1/6 + 1/6 = 6/6

Somma dei valori precedenti o uguali a un dato valore associato ad un blocco della partizione. (Somma totale = 1)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

60

Page 61: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Passiamo ora al caso continuo:(variabile aleatoria continua)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

61

• Abbiamo un numero infinito di probabilità per tutti i valori compresi in un intervallo.

Page 62: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Calcoliamo probabilità con matlab di distribuzione

Normale/Gaussiana%creiamo vettore uniforme tra -4 e 4 con passo 0.01

>> x = -4:0.01:4;

%creiamo la pdf con il comando normpdf, media 0 varianza 1

>>y = normpdf(x,0,1)

%plot della gaussiana

>>plot(x,y)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

62

Page 63: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Data Import e Data cleaning

Concetti importanti:

• Formato dei file importabili in matlab

• Pulizia e consistenza dei dati

Ripasso Generale - GUI e HTML/PDF - Lezione 11

63

Page 64: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Formato dei dati(i più comuni)

• File di testo

• CSV (comma separated values)

• Da Fogli di calcolo (es. Excel)

• Da Database

• Da File Binari (formati proprietari, immagini, audio, etc)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

64

Page 65: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Pulizia dei dati:

• Attraverso il tool:

IMPORT DATA

• Possiamo decidere se importare ogni colonna in singole variabili.

• Possiamo decidere se importare i dati in un oggetto tabella.

• Usiamo l’auto completamento «tab» per vedere il contenuto dell’oggetto tabella.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

65

Page 66: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Dati mancanti (import data)

• Matlab ci fornisce la possibilità di inserire NaN in caso di valori assenti

• Di non considerare la riga dove mancano dati

• Di non considerare la colonna dove mancano dati

Ripasso Generale - GUI e HTML/PDF - Lezione 11

66

Page 67: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Ripasso Generale - GUI e HTML/PDF - Lezione 11

67

Apprendimento Supervisionato e Non

http://quantdare.com/2016/03/machine-learning-a-brief-breakdown/

Page 68: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Ripasso Generale - GUI e HTML/PDF - Lezione 11

68

Supervisionato: forniamo input e output

Non supervisionato: forniamo solo input

Apprendimento Supervisionato e Non

Page 69: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Partizionamento spazialeQuad-tree e k-means

Concetti importanti:

• Algoritmo di partizionamento ricorsivo

• Apprendimento non supervisionato

• Algoritmo k-means, calcolo dei centroidi

• Clustering

Ripasso Generale - GUI e HTML/PDF - Lezione 11

69

Page 70: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Partizione e ClusteringQuad-tree e K-Means

Renato Mainetti

Page 71: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Quad-tree• Proviamo a suddividere usando come criterio il colore.

• Un’immagine in Matlab è una matrice.

• Se l’immagine è in toni di grigio allora viene rappresentata da una matrice monodimensionale, il numero di righe e di colonne equivale alla dimensione in pixel dell’immagine (larghezza = colonne, altezza=righe)

• Se l’immagine è a colori allora sarà una matrice tridimensionale. L’immagine infatti avrà 3 canali:• Rosso (Red)• Verde (Green)• Blue (Blue)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

71

Page 72: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Quad-tree

• Impiegato in ambito di imaging: (compressione, segmentazione, ecc.)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

72

Page 73: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

kMeans

• Generiamo un dataset e proviamo ad applicare questo metodo.

• Il file: kmean.m

Ripasso Generale - GUI e HTML/PDF - Lezione 11

73

Page 74: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Classificazione e validazione

Concetti importanti:

• Decision-tree

• Reti neurali

• Predire classe, dato un vettore di input

• Validazione: training e test, cross-fold

Ripasso Generale - GUI e HTML/PDF - Lezione 11

74

Page 75: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Pipeline: cosa fare per classificare

Ripasso Generale - GUI e HTML/PDF - Lezione 11

75

Dati Noti (Predittori)

Risposte Note (Etichette)

Modello

Nuovi dati (non etichettati)

Modello

Predizione Risposte

1)

2)

Page 76: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Proviamo a creare deidecision-tree:(usando come dati di addestramento le funzioni logiche booleane AND e XOR)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

76

AND XOR

…ma prima rapido ripasso della logica booleana…

Page 77: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Addestramento• Classificare i fiori in funzione della dimensioni di

petali e sepali:

Ripasso Generale - GUI e HTML/PDF - Lezione 11

77

Page 78: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Perceptrone e reti neurali

Concetti importanti:

• Dal neurone al perceptrone (modello matematico)

• Significato geometrico dell’addestramento

• Funzioni linearmente separabili e non

• Addestramento

• Classificazione

Ripasso Generale - GUI e HTML/PDF - Lezione 11

78

Page 79: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Dal Neurone al Perceptrone

Perceptrone: costrutti matematici che in qualche misura imitano le proprietà dei neuroni viventi.

• Si esegue una "somma pesata" (integrazione) dei vari input provenienti dai dendriti.

• Se la loro somma è superiore ad una certa soglia allora il neurone/perceptrone scarica.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

79

Page 80: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Funzionamento perceptrone

• Somma degli input pesati a cui sottraggo il valore di soglia 𝜃.

• Se il risultato è maggiore di zero, il perceptrone si attiva.

Ripasso Generale - GUI e HTML/PDF - Lezione 11

80

Z = 𝑠𝑔𝑛(

i=1

𝑛

𝑥𝑖𝑤𝑖 − 𝜃)

Page 81: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Addestramento perceptrone(geometricamente…)

Ripasso Generale - GUI e HTML/PDF - Lezione 11

81

In pratica stiamo modificando i parametri della retta che divide i due insiemi linearmente separabili.

Page 82: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

AND, OR e XOR

Ripasso Generale - GUI e HTML/PDF - Lezione 11

82

U1 U2 Y

0 0 0

0 1 0

1 0 0

1 1 1

U1 U2 Y

0 0 0

0 1 1

1 0 1

1 1 0

U1 and U2 U1 xor U2

Y sempre falso (0) a meno che U1 e U2 siano entrambe vere(1)

Y sempre falso (0) quando U1 = U2Y sempre vero (1) quando U1 ≠ U2

U1 or U2

U1 U2 Y

0 0 0

0 1 1

1 0 1

1 1 1

Y sempre vero (1) a meno che U1 e U2 siano entrambe false(0)

Page 83: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Pubblicare un lavoro in html/PDF

Ripasso Generale - GUI e HTML/PDF - Lezione 11

83

E’ possibile generare in maniera automatica la documentazione/report di un lavoro che avete eseguito in Matlab.Se viene usata una particolare sintassi all’interno di uno script Matlab, matlab sarà in grado di auto-generare per noi la documentazione di quello script.

Si possono utilizzare i tasti di formattazione testo, grassetto, corsivo, lista puntata, ecc. che hanno la funzionalità di aiutarci nell’inserimento della giusta sintassi.

Una volta terminato il lavoro è possibile generare il documento premendo il tasto «Publish». E’ inoltre possibile specificare il formato(html o pdf) nelle impostazioni di «Publish» (freccetta sotto il tasto)

File esempio: Document.m

Page 84: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

GUI - Graphical User Interface

Ripasso Generale - GUI e HTML/PDF - Lezione 11

84

Per iniziare la creazione di una GUI inseriamo da riga di comando:>> guide

La gui ci permette di fornire all’utente un’interfaccia grafica con cui interagire:Bottoni, testo editabile, menu, grafici.

File esempio: simpleGUI.m

Page 85: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

GUI - Graphical User Interface

Ripasso Generale - GUI e HTML/PDF - Lezione 11

85

I componenti vengono aggiunti alla finestra che conterrà la nostra applicazione.Ogni componente viene identificato univocamente attraverso il suo TAG (nome).Se volete approfondire: http://it.mathworks.com/help/matlab/creating_guis/about-the-simple-guide-gui-example.html

Page 86: e creare HTML/PDF e GUImainetti.di.unimi.it/teaching/ailab/lessons/L11/L11.pdf · quadrata sulla barra di sinistra. • Transizioni -> dato lo stato attuale della fsm, se la condizione

Fine del corso /

• Buona preparazione dell’esame e del progetto.

• Contatti:

[email protected]

• Pagine del corso:• http://mainetti.di.unimi.it/teaching.html

• http://aborgheseiaad.ariel.ctu.unimi.it/v3/home/Default.aspx

Ripasso Generale - GUI e HTML/PDF - Lezione 11

86