Matlab Esercitazione 1 - Introduzione Matlab MATrix LABoratory Contenuto cartella corrente Current Directory Variabili correnti editor Command window Comandi recenti Matrici MATLAB tratta tutte le variabili come matrici I vettori sono forme speciali di matrici con una sola riga o colonna Gli scalari sono trattati come vettori con una sola riga e una sola colonna v_riga = [1 2 3]; v_colonna = [1; 2; 3]; matrice = [1 2 3; 4 5 6; 7 8 9]; 123 1 2 3 1 2 3 4 5 6 7 8 9 Istruzioni frequenti clear all ; close all F9 CTRL invio clc % commento %% per un codice più ordinato... help Help Contents getting started Matrices and arrays Expressions Working with matrices • Generating matrices More about • Linear algebra •Arrays Graphics (per approfondire sui grafici) • Using basic plotting functions Printable documentation Operatori Trasposizione (‘) Potenze (^ o .^) Moltiplicazione (* o .*) Divisione (/ o ./) 1 2 3 A = 1 0 1 2 4 3 Addizione (+) Sottrazione (-) Assegnamento (=) a^b o a.^b a*b o a.*b a/b o a./b 1 2 2 B = 2 3 1 0 1 2 A*B = 5 11 10 1 3 4 8 17 15 A .* B = 1 4 6 2 0 1 0 3 8 a+b a-b a=b a’ Estrazione di sotto-matrici 1 2 3 A = 1 0 1 2 4 3 A (:, :) = 1 2 3 1 0 1 2 4 3 A(1) A(1,1) A(4) A(1,2) A(7) A(1,3) A(2) A(2,1) A(5) A(2,2) A(8) A(2,3) A(3) A(3,1) A(6) A(3,2) A(9) A(3,3) A(1) A(1,1) A(2) A(1,2) A(3) A(1,3) A (: ,1) = 1 1 2 A (3,2) = 4 A(4) A(1,4) A (1 ,3) A (1, :) = 1 2 3 A (6) = 4 A (3) Operazioni su scalari x = 25 y = - 2.6 r = sqrt(x); sign(y) round(y) r=5 -1 abs(y) 2.6 -3 floor(y) -3 ceil(y) -2 floor(abs(y)) 2 Operazioni su vettori e matrici v= 1 3 2 size (v) [1 3] mean(v) 2 std(v) min (v) 1 max (v) 3 sum (v) 6 sort (v) 1 2 3 A = 1 0 1 2 4 3 size (A) length (A) min (A) [1 2 3] length (v) 3 1 3x3 9 101 max (A(:)) 4 max (A) 243 sum (A) [4 6 7] mean(A(:)), std(A(:)), var(A(:)), … sum (A(:)) 17 sum(A(:)), abs(A(:)) Matrici “notevoli” 0 0 0 0 0 0 0 0 0 zeros (3) ones (1,3) linspace(a, b, n) n a rand (1,3) randn(1,3) 0.8147 0.9134 [1 1 1] 0.2785 b distribuzione uniforme [0 1] distribuzione gaussiana a media nulla e deviazione standard unitaria Esercizi Dato il vettore z=-5:5 dire cosa effettuano i seguenti comandi Matlab • length(z(3:7)) • z(11:-2:1).^2 • z(5:11)=[] • z([11 6 2 1])=1:4 • clear z Dati due vettori v1 e v2 le cui componenti sono v1= (5, 6, 3) v2= (4 ,10, 12) 1) Generare i due vettori assegnandone i valori alle variabili v1 e v2; 2) Calcolare la matrice A uguale a v1 trasposto per v2; 3) Estrarre da A la sottomatrice B di dimensioni 2x2 fatta dalle ultime due righe di A e le ultime 2 colonne di A; Istruzione for 1 for x = 1: p : M % comandi end 1 2 4 8 16 32 64 x=[1 1]; for i = 3:10 x(i)= sum(x); end ESERCIZIO: fare un ciclo for per generare i primi 20 numeri di FIBONACCI Funzioni function [output1, output2] = name (input1, input2, input3) (il nome della funzione deve avere lo stesso nome del file .m in cui viene salvata) [output1, output2] = name (input1, input2, input3); function [n] = doppio (num) n = 2 * num; Sul workspace (o all’interno di un’altra funzione) Dall’editor si salva come “doppio.m” x=15 x_t = doppio(x); Esercizio Creare una funzione che dati due vettori con le coordinate di due punti nel piano cartesiano, ne calcoli la distanza euclidea. Lanciare la funzione con i seguenti dati p1=[1 1] p2=[4,10] Date le coordinate dei vertici di un triangolo, calcolarne il perimetro. p1=[1 1] p2=[4,10] p3=[8 2] (inserire le coordinate dei punti in una matrice 3x2) Calcolare il perimetro di un pentagono con vertici p1=[2 7] p2=[3 2] p3=[6 1] p4=[8 4] p5=[5 9]