Lab 8 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 20 O0obre 2015

Documenti analoghi
Informatica B

Informatica B

Lab 7 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 19 Gennaio 2016

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 17 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA

Lab 5 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 15 Dicembre 2015

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Appello del 17 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA

Lab 4 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 20 O0obre 2015

Lab 5 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 7 Dicembre2013

Lab 5 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 1 Dicembre 2014

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Input/output. Marco D. Santambrogio Ver. aggiornata al 24 Agosto 2015

Lab 3 Info B. Buon 314mo giorno del 2015! Marco D. Santambrogio Matteo Ferroni

Lab 4 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 24 Agosto 2015

Lab 5 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 9 Agosto 2013

Diagrammi 2D e 3D Funzioni di ordine superiore

ESERCIZIO 1. Informatica B - Esercitazione 14

Lab 1 Info B. Marco D. Santambrogio Matteo Ferroni Ver. aggiornata al 24 Agosto 2015

Informatica B

Lab 1 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 12 O0obre 2013

Lab 1 Info B. Marco D. Santambrogio Riccardo Cattaneo Ver. aggiornata al 20 O0obre 2014

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Script. Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 13 Agosto 2014

Diagrammi 2D e 3D Funzioni di ordine superiore

Università degli Studi di Ferrara Corso di Laurea in Chimica - A.A

Facoltà di Ingegneria Industriale. Matlab/Octave - Esercitazione 7. ricorsione e funzioni anonime

Diagrammi 2D e 3D Funzioni di ordine superiore

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 3 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Lab 4 Info B. Luca M. Cassano SadeghM. Astaneh

ESERCIZIO 1. Informatica B - Esercitazione 12

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 3 Febbraio 2009 COGNOME E NOME RIGA COLONNA MATRICOLA

Introduzione al MATLAB c Parte 2

Università degli Studi di Ferrara

12 Function Handles e Ricorsione in MATLAB

MATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA

Lab 3 L Aprile 2015

13 Esercizi di Riepilogo

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Lab 3: 30 Ottobre 2017

MATLAB c. Lucia Gastaldi Dipartimento di Matematica Lezione 4 (15 ottobre 2003)

Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B. Esempio di seconda prova in itinere A.A

Scrivi una funzione ricorsiva che prende in input un vettore V e restituisce un vettore V2 della dimensione doppia di V, che

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOIGNEGNERIA. INFORMATICA B Ingegneria Elettrica. Script in Matlab

MATLAB Alcune funzioni utili: fprintf, length, size

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

Dipartimento di Elettronica, Informazione e Bioingegneria Politecnico di Milano

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

Matlab/Octave - Esercitazione 14

Parte 2 Tutorial Cenni di programmazione

Lab 4: 10 Aprile 2014

Esercitazioni con GNU Octave

Laboratorio di Calcolo Numerico

12 Function Handles e Ricorsione in MATLAB

Laboratorio di Calcolo Numerico Laboratorio 7: Quadratura numerica

Fondamenti di Informatica

13 Esercizi di Riepilogo

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

15 Riepilogo di esercizi in MATLAB

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. La Ricorsione. Marco D. Santambrogio Ver. aggiornata al 12 Maggio 2016

Algoritmi e basi del C

Introduzione all ambiente MATLAB. Richiami II. Calcolo Numerico - A.A. 2008/09

Introduzione al MATLAB c Parte 3 Script e function

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. Array e stringhe. Marco D. Santambrogio Ver. aggiornata al 28 O0obre 2014

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Fondamenti di Informatica

Programmare. Condizioni logiche. Condizioni Logiche Costrutti Decisionali Costrutti di Ciclo

Script in Matlab. INFORMATICA B + C (sezione L-Z) Ingegneria Elettrica, Chimica e dei Materiali

Informatica B - A.A. 2018/2019

1) Matlab e simulazione. 2) Esempi di utilizzo. Mauro De Sanctis corso di Informazione e Codifica Università di Roma Tor Vergata

Iterazione Vs Ricorsione

12 Function Handles e Ricorsione in MATLAB

Primi script in MATLAB

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Strutture di controllo condizionali in Matlab

FONDAMENTI DI INFORMATICA

Stringhe e tipi di dati strutturati

1 (7) 2 (6) 3 (6) 4 (7) 5 (6)

Lab 1: Marzo 2013

Introduzione all ambiente MATLAB. Richiami II. Analisi Numerica - A.A. 2007/08

RICONOSCIMENTO DI FORME A.A OBIETTIVI PARTE 1 INTRODUZIONE A MATLAB

Lab 1 Info B. Diego Carrera Ing. Gian Enrico Conti 17 Ottobre 2016

Aritmetica di macchina

Lab 5: 18 Maggio 2015

Fondamenti di Informatica

Esercizi 5 CICLI. Es.5(cicli)

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Comunicazioni. Salvo Daniele Valente Dipartimento di Elettronica e Informazione

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Laboratorio n 6 del Ing. Dario Cogliati

Calcolo Numerico A.A Lab n

14 Function Handles in MATLAB

Iterazione Vs Ricorsione

Fondamenti di Informatica

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Transcript:

Lab 8 Info B Marco D. Santambrogio marco.santambrogio@polimi.it Matteo Ferroni matteo.ferroni@polimi.it Ver. aggiornata al 20 O0obre 2015

Calendario dei Labs: MATLAB 26 Gennaio 2016, 10.30am-12.30pm,@B6.23 MATLAB: funzioni ricorsive, funzioni di ordine superiore, grafici 2D e 3D 2

Lab 8: Agenda Warm Up (15 ) Qualche cosa un po più divertente (45 ) Altri exe (60 ) 3

Lab 8: Ora.. Warm Up (15 ) modulo Qualche cosa un po più divertente (45 ) Altri exe (60 ) 4

modulo: problema Dato un numero inserito dall utente, scrivere a video il suo modulo Si usino handle scritti da voi Esempio Inserire il numero: >>> -3 >>> 3 5

modulof1 in Octave %script modulo1 x=input("inserisci uno scalare: "); modulof1=@(x)((-1)*x); if x<0 r=modulof1(x) else r=x end 6

modulof2 in Octave %script modulo2 x=input("inserisci uno scalare: "); minzero = @(x)(~(x>0)); modulof2 = @(x)((-1)*x); if minzero(x) r = modulof2(x) else r=x end 7

Lab 8: Ora.. Warm Up (15 ) Qualche cosa un po più divertente (45 ) tmp presente Altri exe (60 ) 8

tmp: problema Facendo uso della funzione di ordine superiore accumulatore Codificare la funzione tmp(v) Prende come argomento un vettore di numeri v=[v1,, vn] Calcola e restituisce come risultato il valore Codice della funzione accumulatore function [x]=accumulatore(f, a, u) x = u; for i=1:length(a) x = f(x, a(i)); end 9

tmp: soluzione function ris = tmp(v) prod = @(x, y) x*y; sum = @(x, y) x+y; ris = accumulatore (prod, v, 1) * accumulatore (sum, v, 0); 10

presente: problema Facendo uso delle funzioni di ordine superiore map e acc presentate a lezione, scrivere una funzione presente(x, v) dove x è un valore e v un vettore. La funzione deve restituire un valore logico true se x è contenuto in v, e deve eseguire il controllo verificando la seguente condizione: x==v(1) OR x==v(2) OR. x==v(length(v)) Procedere in questo modo: Calcolare tramite map un vettore logico che contiene 1 in corrispondenza dei valori del vettore che sono uguali a x Calcolare poi tramite accumulatore l OR degli elementi del vettore Codice della funzione map: function [vout]=map(f, vin) for i=1:length(vin) vout(i)=f(vin(i)); end 11

presente in Octave function [p]=presente(x,v) %Definiamo una variabile funzione che verifichi l'uguaglianza eqx = @(a)a==x; % Tramite map, costruiamo un vettore logico che contiene 1 nelle posizioni % in cui il vettore in ingresso contiene valori uguali a x vp = map(eqx,v); % Definiamo una variabile funzione che calcoli l'or tra due valori logici OR = @(h,k)h k; % Tramite acc, calcoliamo l'or tra tutti gli elementi del vettore logico % ottenuto con map p = accumulatore(or,vp,0); 12

Lab 8: Ora Warm Up (15 ) Qualche cosa un po più divertente (45 ) Altri exe (60 ) garatuffi combinaimmagini 13

garatuffi: problema Facendo uso della funzione di ordine superiore accumulatore Codificare la funzione garatuffi(v) Prende come argomento un vettore di voti v=[v1,, vn] Calcola e restituisce come risultato il valore medio dei voti Codice della funzione accumulatore function [x]=accumulatore(f, a, u) x = u; for i=1:length(a) x = f(x, a(i)); end 14

garatuffi: soluzione function ris = garatuffi(v) sum = @(x, y) x+y; ris = accumulatore (sum, v, 0)/length(v); 15

combinaimmagini: problema Si conviene di rappresentare un immagine mediante una matrice rettangolare di numeri, corrispondenti al colore dei suoi pixel (punti luminosi che compongono la figura) Si vuole progettare una funzione Octave di nome combinaimmagini che, ricevendo come parametri due matrici f1 ed f2 rappresentanti due immagini e due valori numerici C ed S, con C<S, rappresentanti due diversi colori, produce come risultato una terza figura f3, ottenuta da f1 ed f2 secondo la seguante regola. Nelle posizioni (r,c) in cui f1(r,c)<c ed f2(r,c)>c si ha f3(r,c)=f2(r,c)- f1(r,c) Nelle posizioni (r,c) in cui f1(r,c)>s ed f2(r,c)<s si ha f3(r,c)=f1(r,c)- f2(r,c) nelle posizioni rimanenti si ha f3(r,c)=f1(r,c) Domande Codificare la funzione combinaimmagini Scrivere uno script che acquisisce le due matrici di partenza rispettivamente dai file file1.mat e file2.mat (si supponga che le due variabili contenenti le matrici al momento del salvataggio si chiamino matr1 e matr2), richiama la funzione combinaimmagini e salva sul file file3.mat la matrice risultante. 16

combinaimmagini: soluzione function [f3]=combinaimmagini(f1, f2, C, S) f3=f1; f3(f1<c & f2>c)=f2(f1<c & f2>c)-f1(f1<c & f2>c); f3(f1>s & f2<s)=f1(f1>s & f2<s)-f2(f1>s & f2<s); %script che esegue combinaimmagini load file1.mat matr1; load file2.mat matr2; C= input('inserisci il valore per C: '); S= input('inserisci il valore per S: '); matr3 = combinaimmagini(matr1, matr2, C, S); save file3.mat matr3; 17

FINE!!! 18

Fonti per lo studio + Credits Fonti per lo studio Introduzione alla programmazione in MATLAB, A.Campi, E.Di Nitto, D.Loiacono, A.Morzenti, P.Spoletini, Ed.Esculapio Capitolo 2, 4, 5 Credits: Emanuele Panigati https://sites.google.com/site/engpanigati/ 19