Introduzione a Matlab

Похожие документы
Matlab: Variabili e Array. Informatica B

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

INTRODUZIONE A MATLAB

Esercitazione 1: Introduzione a MATLAB

Costanti e Variabili

Caratteristiche di un linguaggio ad alto livello

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

Lezione 6 Introduzione al C++ Mauro Piccolo

Strumenti per il calcolo numerico Matlab/Octave

Introduzione al MATLAB c Parte 3 Script e function

Vettori Matrici Grafi Introduzione al Fuzzy-tool. Renato Mainetti

Introduzione alla programmazione in linguaggio C

Strumenti per il calcolo numerico Matlab/Octave

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

Le classi in java. Un semplice programma java, formato da una sola classe, assume la seguente struttura:

Array multidimensionali e stringhe

MATLAB Elementi di grafica Costrutti di programmazione

Vettori e Matrici. Vettori. Vettori e matrici: dati. Vettori di caratteri Polinomi. Dimensione (Size) numero di righe e di colonne della matrice

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

Dati aggregati. Violetta Lonati

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

I tipi strutturati e i record in C++

3. Matrici e algebra lineare in MATLAB

Le basi del linguaggio Java

Gli Array. Dichiarazione di un array

Fondamenti di Informatica

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

Strutture dati e loro organizzazione. Gabriella Trucco

Algoritmi stabili e instabili

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

Struttura dei programmi C

Foglio Elettronico Lezione 1

Problema. Vettori e matrici. Vettori. Vettori

Fogli Elettronici. Idoneità Informatica Prof. Mauro Gaspari

Esercitazione di Reti degli elaboratori

Introduzione alla programmazione. Alice Pavarani

L AMBIENTE CODE BLOCKS E L IO

PON Liceo Scientifico Leonardo da Vinci. Vallo della Lucania

Informatica Applicata al Suono Tutorial Matlab

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

L AMBIENTE CODE BLOCKS E L IO

Транскрипт:

INFORMATICA B Ingegneria Elettrica Introduzione a Matlab

Introduzione a Matlab Matlab (MATrix LABoratory) è uno strumento per il calcolo scientifico ed ingegneristico Matlab facilita lo sviluppo di programmi che eseguono complesse elaborazioni di calcolo numerico grazie a: Un ambiente di sviluppo integrato ed uno specifico linguaggio di programmazione Una ricca libreria di funzioni matematiche Matlab può essere scaricato da: www.software.polimi.it/software-download/studenti/ La licenza gratuita è fornita agli studenti dal Politecnico 2

L ambiente di sviluppo di Matlab L editor di testo può essere utilizzato per scrivere programmi La command window permette di inserire comandi che vengono immediatamente eseguiti e visualizza i risultati di ciascuna istruzione eseguita Il workspace mostra le variabili definite dalle istruzioni eseguite finora 3

Il linguaggio Matlab È un linguaggio di alto livello È un linguaggio orientato alle elaborazioni Offre specifiche operazioni per matrici Offre una vasta gamma di funzioni matematiche È un linguaggio interpretato Non richiede la compilazione in codice macchina Le istruzioni inserite sono direttamente eseguite Non è un linguaggio tipizzato Non occorre dichiarare le variabili Non è necessario specificare il tipo delle variabili Alla stessa variabile è possibile assegnare valori di tipi diversi durante l esecuzione dello stesso programma 4

Variabili e array L unità fondamentale di dati in Matlab è l array Ogni variabile è un array Gli scalari sono array di dimensione 1x1 La definizione dei nomi delle variabili è simile a quella del C Matlab è un linguaggio a tipizzazione debole Le variabili sono create quando viene effettuata l inizializzazione (il primo assegnamento) Il tipo della variabile è determinato dal valore che contengono (tipo dinamico!) Parleremo dopo dei tipi di dato... 5

Creazione di una variabile per assegnamento Scalari (array di dimensione 1x1) a = 3 b = 55 Array arr = [3 4 2 3] Matrici matr = [3 4 2; 4 5 6] Gli elementi sulla stessa riga possono essere separati mediante uno spazio o una virgola Le righe sono separate da punto e virgola 6

Assegnamenti ed accesso agli array Indicizzazione dell array L accesso ad una specifica posizione viene effettuato specificando l indice tra parentesi tonde Se l array ha più dimensioni, bisogna separarle gli indici con virgole Gli indici iniziano da 1 Esempio: esecuzione dei seguenti comandi a = [0 7+1]; b = [a(2) 5 a]; Risultato a = [0 8] b = [8 5 0 8] Contenuto di a Secondo elemento di a 7

Inizializzazione di default delle variabili Non tutti gli elementi devono essere specificati alla creazione Alle posizioni non inizializzate viene assegnato il valore di default 0 Esempio: c(2,3) = 5; 8

Modifica della dimensione dell array È possibile estendere la dimensione dell array dopo la sua creazione assegnando un valore ad una posizione ancora non esistente Esempio: d = [2 5]; d(4) = 2; 9

Trasposizione dell array L operatore apice ' ci permette di calcolare l array trasposto Esempio: d = [2 5 0 2]; g = d'; 10

Enumerazione di una serie di valori È possibile enumerare implicitamente una serie di valori specificando limite inferiore, passo e limite superiore separati dal simbolo : : inf:passo:sup La specifica del passo è facoltativa (di default viene usato 1) Esempio: x = 1:2:10; Risultato: x = [1 3 5 7 9] Altro esempio: l = 3:-1:1; m = [l' l']; Risultato: m = [ 3 3 ; 2 2; 1 1] 11

Accesso contemporaneo più posizioni di un array Si può usare il simbolo : al posto di un indice per accedere a tutti gli elementi su quella dimensione a = [1 2 3; 4 5 6; 7 8 9]; b = a(:,1); c = a(2,:); 12

Accesso contemporaneo più posizioni di un array È possibile utilizzare un array contenente una serie di numeri per specificare più posizioni a cui accedere d = a([1,2], [3,1]) e = a(4) Attenzione: la linearizzazione dell array avviene per colonne f = a(:)' 13

Assegnamenti di array e scalari ad array È possibile assegnare uno scalare a tutte le celle di un array o ad una sottoparte Esempio: m(1:4,1:3)=3 m(1:2,1:2)=4 14

Assegnamenti di array e scalari ad array È possibile fare più assegnamenti contemporanei tra array Le dimensioni dei due array sulla sinistra e sulla destra dell assegnamento devono essere uguali Esempio: m(1:4,1:3)=3 m(1:2,1:2)=4 m1(2:3,4)=m(1:2,1) 15

Funzioni predefinite 16

Esempi di utilizzo delle funzioni predefinite Esempio: a = zeros(2); b = zeros(2,3); c = [1 2; 3 4]; d = size(c); e = zeros(size(c)); 17

Tipo double Una variabile di tipo double contiene uno scalare o un array di numeri in doppia precisione (64 bit) Il tipo double permette di rappresentare Valori reali var1 = -10.7; Valori immaginari var2 = 4i; var3 = 4j; Valori complessi var3 = 10.3 + 10i; (i e j sono sinonimi) Tutti gli array che abbiamo visto finora erano di tipo double 18

Tipo char Le stringhe sono array di caratteri (codificati con 16 bit) Le stringhe sono specificate tra apici singoli Esempio: commento = 'questa è una stringa'; Crea un array di dimensione 1x20 contenente caratteri 19

Variabili speciali 20

Variabili speciali Attenzione: il valore delle variabili predefinite può essere modificato mediante un assegnamento Esempio: circ1 = 2*pi*10; pi = 5; circ2 = 2*pi*10; circ1 = 62.8319 circ2 = 100 È fortemente sconsigliato modificare il valore delle variabili 21

Operazioni su array e su scalari Tutte queste operazioni sono anche definite su scalari (visto che lo scalare è una matrice 1x1) 22

Operazioni su scalari e su array Gli operatori +, -, *, / implementano le operazioni matematiche tra matrici (e tra scalari) Somma: Moltiplicazione tra matrici: 23

Operazioni su scalari e su array Gli operatori.*,.^,./,.\ sono degli operatori che eseguono l operazione specificata tra elementi in posizioni corrispondenti delle due matrici operande 24

Operazioni su scalari e su array Gli operatori possono essere usati anche tra una matrice e uno scalare (l operazione verrà eseguita su ciascun elemento della matrice e lo scalare) Esempio: 25

Matrix left division L operatore Matrix left division permette di risolvere con una sola istruzione sistemi di equazioni in n incognite Problema: Calcolo della soluzione: x = A\B; x: vettore incognite A: matrice dei coefficienti B: vettore dei termini noti 26

Altre funzioni Ne vedremo molte altre negli esercizi Il comando help <nome_funzione> mostra la guida sulla funzione 27

min e max Se min e max sono applicati su array, restituiscono il valore minimo o massimo Esempio: x = [3 7 5 1 9] y = min(x); Risultato: y = 1 Esempio: x = [3 7 5 1 9] [y z] = min(x); Risultato: y = 1 z = 4 28

min e max Se min e max sono applicati su matrici, restituiscono un vettore contenete i valori minimi/massimi di ciascuna colonna Esempio: x = [7 1; 1 9] y = min(x); Risultato: y = [3 1] Esempio: x = [7 1; 1 9] [y z] = min(x); Risultato: y = [3 1] z = [2 1] 29

Diagrammi in 2 dimensioni In Matlab i diagrammi bidimensionali vengono disegnati mediante un insieme ordinato di coppie che rappresentano coordinate di punti che sono connessi tramite una linea spezzata Esempio: x = -10:0.1:10; y=x.^3; plot(x,y); xlabel('ascisse'); ylabel('ordinate'); title('cubica'); 30