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

Documenti analoghi
Un piccolo esempio: script

Un piccolo esempio: script

Ordinamento di una lista: bubble-sort

Analisi Numerica I Introduzione a Matlab

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Introduzione al MATLAB c Parte 3 Script e function

Introduzione a Matlab

Laboratorio di Calcolo Numerico Laboratorio 8: Vettori e Matrici

ESERCITAZIONE MATLAB

Introduzione al MATLAB c Parte 2

Laboratorio di Programmazione II Corso di Laurea in Bioinformatica Dipartimento di Informatica - Università di Verona

Operatori relazionali

Algoritmi stabili e instabili

A.A. 2018/2019. Fondamenti di Programmazione in MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

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

Strutture di controllo condizionali in Matlab

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Vettori e Matrici. Corso di Calcolo Numerico. 24 Aprile 2018

3+4 2 (3+1) 4. Variabili a = 3 b = 4 c = a + b who, whos MATrixLABoratory Un numero è una matrice 1 1.

Introduzione a Matlab

Primi script in MATLAB

Matlab: Script e Funzioni

Metodi numerici con elementi di Programmazione A.A

FONDAMENTI DI INFORMATICA

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Ordinamento di una lista: bubble-sort

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

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

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

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

8 Introduzione MATLAB

Metodi di Analisi dei Dati Sperimentali. AA 2009/2010 Pier Luca Maffettone. Elementi di Matlab

Esercitazione 1: Introduzione a MATLAB

8 Introduzione MATLAB

Scilab. Introduzione a Scilab - Vettori. Corso di Informatica CdL: Chimica. Claudia d'amato.

Esercitazione 00 Introduzione a Matlab

INTRODUZIONE A MATLAB

FONDAMENTI DI INFORMATICA. Prof. Alfredo Accattatis Tutor: prof. Venturino Taggi

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

MATLAB Elementi di grafica Costrutti di programmazione

Fondamenti di Informatica

Laboratorio di Sperimentazioni di Fisica I MOD A. 14 ottobre 2009

Introduzione a Matlab

UD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita

INTRODUZIONE A MATLAB. Introduzione. Calcolatrice base. Calcolatrice base. Variabili predefinite o speciali. Variabili predefinite o speciali

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

Octave. Luca Abeni. Informatica Luca Abeni 1 / 21

Programmazione Matlab

Introduzione. MATLAB è l acronimo di MATrix LABoratory

MATRICI (ARRAY) IN MATLAB/OCTAVE

Elementi di Calcolo Scientifico per l Ingegneria A.A

Informatica (A-K) 5. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Matlab 4. Operatori logici e Script. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 1 - Introduzione a MATLAB

Laboratorio di Matlab

Vettori Matrici Grafi. Renato Mainetti

Tutorial. Introduzione a Matlab

Dichiarazione di variabili

Esercitazione #0. Introduzione a MatLab

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

Cast implicito. Il cast è fatto automaticamente quando un tipo più basso viene assegnato ad un tipo più alto. byte short int long float double

Fondamenti di Informatica

Mini-Corso di Informatica

Esercitazione 2. Prima parte

Problema: calcolare il massimo tra K numeri

MATLAB parte II. Array

Fondamenti di Informatica

Laboratorio di Matlab

Breve introduzione a MATLAB

Array. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 11. A. Miola Dicembre 2007

Vettori Matrici Grafi Introduzione al Fuzzy-tool. Renato Mainetti

Introduzione a MATLAB

Corso di Informatica di Base

Corso Matlab : Seconda lezione (Esercitazione, 10/05/13) Samuela Persia, Ing. PhD.

Matlab: introduzione

Qualsiasi programma in C++ segue lo schema: Variabili

CORSO DI LAUREA IN INGEGNERIA ELETTRICA

APPUNTI PER IL CORSO DI MATEMATICA APPLICATA. 1. Lezione 1 Richiamo brevemente alcune notazioni della teoria degli insiemi.

Ordinamento efficiente: quick-sort

1. Calcolo dell indice di condizionamento di una matrice

Calcolo Numerico A.A Lab n

MatLab - Testo pagina 1 di 5 101

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Tema A+B COGNOME E NOME. Politecnico di Milano Facoltà di Ingegneria Industriale INFORMATICA B Prova in itinere del 4 Febbraio 2016

Introduzione al MATLAB c Parte 2 Funzioni

LABORATORIO DI INFORMATICA ESERCITAZIONE VIII

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione a Matlab

Matlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1

A. Introduzione a Matlab

Transcript:

Creazione di matrici Delimititatore di riga Delimititatore di matrice >> A = [1 2 3; 4 5 6; 7 8 9]; >> A = [... 1 2 3 4 5 6 7 8 9 ]; Entrambi i comandi creano la stessa matrice 3x3

Accedere agli elementi delle matrici: coordinate >> A = [... 1 2 3 4 5 6 7 8 9 ]; Per accedere ad elementi di una matrice si usano le parentesi tonde >> A(2,1) ans = 4 Un elemento è identificato dalla sua posizione (riga,colonna), >> A(2) ans = oppure dal suo indice, contando gli elementi della matrice per colonna 4

Accedere agli elementi delle matrici: indici >> A = [... 1 2 3 4 5 6 7 8 9 ]; Una matrice può essere vista come una sequenza di elementi in memoria che Matlab dispone in righe e colonne. Ma è possibile anche accedere ad un elemento conoscendone la posizione (l indice) nella sequenza in memoria In matrice Colonna 1 2 3 Riga 1 2 3 1 2 3 4 5 6 7 8 9 In sequenza Indice 1 2 3 4 5 6 7 8 9 1 4 7 2 5 8 3 6 9

Accedere agli elementi delle matrici: indici >> A = [... 1 2 3 4 5 6 7 8 9 ]; >> A(1,3) Per accedere all elemento 3: 1) posso utilizzare le coordinate riga-colonna, 2) Oppure posso utilizzare il suo indice sequenziale ans= 3 >> A(7) ans= 3

Sottomatrici Per accedere ad un elemento: >>x=a(3,4) assegnera 12 a x >>A =[ 1 2 3 4 5 6 7 8 9 10 11 12]; Per accedere ad un intera riga, >>A(2,:) restituira [5 6 7 8] Per accedere ad un intera colonna, >>A(:,3) restituira [3 7 11] Per accedere ad una sottomatrice, ad es.la 2X2 in basso a destra >>A(2:3,3:4) restituira [7 8 11 12]

Dimensioni delle variabili Vettori >>length(x); restituisce la lunghezza del vettore X o il numero di colonne di X Matrici >>[M,N]=size(X); >>size(x,1); >>size(x,2); righe e colonne della matrice X numero di righe della matrice X numero di colonne della matrice X

Stringhe Le stringhe sono sequenze di caratteri. La stringa èdelimitate dal singolo apice >> str='introduzione a Matlab' str = Introduzione a Matlab >>

Costruzione di vettori e matrici Vettori e Matrici con elementi equispaziati >> x=0:2.5:10 x = >> 0 2.5000 5.0000 7.5000 10.0000

Costruzione di vettori e matrici L operatore : serve per indicare un intervallo di valori. 1) Se non ha estremi come nell istruzione >>x(1,:) vuol dire prendi da x la riga 1, e tutte le colonne 2) Se prima e dopo l operatore ci sono dei valori come in: >> 0.5:5 ans = 0.5000 1.5000 2.5000 3.5000 4.5000 vuol dire crea un vettore di numeri che cominci con 0.5, siano spaziati di 1 e abbia come estremo superiore 5 3) Se tra i due estremi dell intervallo c è un valore, esso indica lo spazio tra un valore e quello successivo: >> 1.3:0.3:2 ans = 1.3000 1.6000 1.9000

Costruzione di vettori e matrici Conoscendo il numero di elementi necessari N, e gli estremi Min e Max dell intervallo che si vuole campionare, si può utilizzare la funzione linspace(). Per spaziare in scala logaritmica si utilizza logspace() >> x = linspace(min, Max, N) >> x = logspace(min, Max, N)

Costruzione di vettori e matrici >>x=linspace(1,5,10) x = 1.00 1.44 1.88 2.33 2.77 3.22 3.67 4.11 4.56 5.00 >> >>x=logspace(1,2,5) x = >> 10.0000 17.7828 31.6228 56.2341 100.0000

Operatori logici Gli operatori logici più comuni sono: & : and logico : or logico ~ : not logico >> a b ans = 1 1 0 1 >> a=[0,1,0,3]; >> b=[1,1,0,3]; >> a & b ans = 0 1 0 1 >> ~b ans = 0 0 1 0

Operatori relazionali Gli operatori relazionali più comuni sono: == uguale ~= diverso da < minore di <= minore o uguale > maggiore >= maggiore o uguale >> a=[0,1,2,3]; >> b=[1,1,3,3]; >> a>b ans = 0 0 0 0 >> b>a ans = 1 0 1 0 >>

Operatori booleani In generale gli operatori logici e relazionali si chiamano booleani, perché il risultato della loro applicazione può avere assumere solo due valori: - 1 equivalente a VERO - 0 equivalente a FALSO ATTENZIONE! Quando applico operatori booleani a dei vettori o a delle matrici, l operatore è applicato ad ogni elemento della matrice se è unario, e a coppie di elementi corrispondenti delle matrici se è binario

Operatori logici: esempio >> a=[0,1,0,3]; >> b=[1,1,0,3]; Controlla se almeno uno tra gli elementi corrispondenti di a e b è diverso da 0: >> a b ans = 1 1 0 1 Controlla se entrambi gli elementi corrispondenti di a e b sono diversi da 0: >> a & b ans = 0 1 0 1 Controlla quale elemento b è non diverso da zero, cioè uguale a 0: >> ~b ans = 0 0 1 0

Operatori relazionali: esempio >> a=[0,1,0,3]; >> b=[1,1,1,3]; Controlla quale elemento di a è maggiore stretto del suo corripondente in b >> a>b ans = 0 0 0 0 Controlla quale elemento di b è maggiore stretto del suo corripondente in a >> b>a ans = 1 0 1 0

Ricerca di elementi Per trovare le coordinate di elementi di una matrice rispondenti a determinate caratteristiche posso utilizzare la funzione find(), che restituise l indice sequenziale degli elementi nel caso si richieda un solo valore in uscita, e le coordinate riga-colonna nel caso se ne richiedano due: indice = find(expr); [riga, colonna] = find (expr);

Ricerca di elementi: esempio >> A=[0,1,0,3; 2,4,6,8] A = 0 1 0 3 2 4 6 8 >> n=find(a>3) >>[r,c]=find(a>3) r = 2 2 2 n = >> 4 6 8 c = >> 2 3 4

Tipi di m-files: scripts Uno script è un file di testo con estensione.m che contiene una sequenza di istruzioni Matlab. Per eseguire le istruzioni contenute nello script bisogna scrivere il nome del file (senza l estensione.m) al prompt di Matlab. Sono anche chiamati M-files Sono utili per automatizzare dei blocchi di istruzioni Matlab che si devono eseguire ripetitivamente dal prompt dei comandi. Possono operare su variabili e dati presenti nello spazio di lavoro, e crearne di nuovi. Qualsiasi variabile creata nello script rimane nel workspace, ed ogni modifica a variabili nel workspace rimane alla fine dello script

Tipi di m-files: funzioni Una funzione di Matlab è anch essa un file di testo con estensione.m che contiene una sequenza di istruzioni Matlab. Si differenzia da uno script in quanto il suo scopo principale è quello di produrre uno o più valori a partire da determinati dati di ingresso (cosa che stabilisce un'analogia con l'omonimo concetto della matematica), Sono utili per automatizzare dei blocchi di istruzioni Matlab che si devono eseguire ripetitivamente dal prompt dei comandi. Possono operare solo sui dati forniti come ingresso alla funzione e sulle variabili variabili create all interno della funzione Qualsiasi variabile creata nella funzione, ad eccezione di quelle esplicitamente restituite, sono eliminate con il termine della funzione (località delle variabili)

Tipi di m-files: funzioni Un m-file che contiene una funzione deve avere come prima istruzione la dichiarazione della funzione: function [out1, out2,...] = nomefunzione(in1, in2,...) Seguono poi le istruzioni che possono agire solo su variabili create all interno della funzione Parametri di ingresso in1, in2, Devono essere create le variabili di uscita out1, out2, Il nome dell m-file deve essere uguale al nome della funzione nomefunzione

Funzioni esempio: File miestat.m % Creo una funzione che calcola % media e deviazione standard % di un vettore vect function [ m, s ] = miestat(vect); % Calcolo la media m = sum(vect)/length(vect); % Calcolo la dev. standard var = sum((vect-m).^2)/(length(vect)-1); s=sqrt(var); return

Funzioni esempio: I commenti cominciano con % E parte di codice che non viene interpretato come istrizioni, e non è eseguito % Creo una funzione che calcola % media e deviazione standard % di un vettore vect function return [ m, s ] = miestat(vect); Argomenti di ingresso alla funzione. Sono gli unici dati presenti all esterno del codice della funzione utilizzabili e conosciuti anche all interno Nome identificativo della funzione Indica la fine della funzione Indica che si sta definendo una funzione Valori di uscita della funzione. Sono le uniche variabili definite all interno della funzione che saranno disponibili una volta terminata la funzione

Utilizzare una funzione Al prompt dei comandi >> x=[1,2,3,4,8,6]; >> [media, stdev]=miestat(x); >> media media= 4 >> stdev stdev = >> 2.6077

Utilizzare una funzione ATTENZIONE! Se si assegnano all uscita di una funzione meno variabili di quelle che potrebbe restituire, quelle non assegnate saranno perdute. Ad esempio se utilizzando la funzione miestat assegnassi una sola variabile alla sua uscita, avrei: >> x=[1,2,3,4,8,6]; >> media=miestat(x); >> media media= >> 4

Ordinamento: selection-sort 1) Seleziona l elemento più piccolo nell array 2) Scambia l elemento selezionato con il primo 3) Ordina la parte restante dell array, cioè riduco la parte di array da considerare, escludendo le prime posizioni già ordinate

Ordinamento: selection-sort Passo 1a: trovo il minimo dell array. prova[0] prova[1] prova[2] prova[3] prova[4] 14 87 1 27 22 minimo Passo 1b: scambio il minimo con il primo elemento. prova[0] prova[1] prova[2] prova[3] prova[4] 14 87 1 22 27

Ordinamento: selection-sort Passo 2: riduco l array da considerare per l ordinamento e ripeto il passo 1 prova[0] prova[1] prova[2] prova[3] prova[4] 1 87 14 27 22 Parte ordinata prova[0] prova[1] prova[2] prova[3] prova[4] 1 87 14 27 22

Ordinamento: selection-sort Passo 2: riduco l array da considerare per l ordinamento e ripeto il passo 1 prova[0] prova[1] prova[2] prova[3] prova[4] 1 14 87 27 22 Parte ordinata prova[0] prova[1] prova[2] prova[3] prova[4] 1 14 87 27 22

Selection sort in Matlab function yout=selectionsort(xin); yout=xin; n=length(yout); for ct=1:n-1, [val,pos]=findmin(yout,ct); yout(pos)=yout(ct); yout(ct)=val; end; return; function [val,pos]=findmin(xin,ind) pos=ind; val=xin(ind); for ct=ind:length(xin), if(xin(ct)<val), val=xin(ct); pos=ct; end; end; return;