Stringhe (1) Una stringa è un array di caratteri. Un array di stringhe è una matrice di caratteri, ma le matrici devono essere rettangolari, perciò si devono aggiungere degli spazi alla fine delle stringhe più corte: S = ['ciao '; 'amico '; 'come va?'] Se una delle stringhe è molto più lunga delle altre si ha un grosso spreco di memoria 1
Stringhe (2) Una stringa può essere anche una cella. Una cella viene creata con la funzione CELLSTR C = [CELLSTR('hello') CELLSTR('yes')... CELLSTR('no') CELLSTR('goodbye')] Oppure viene creata un array di celle con l'operatore parentesi graffe { } C = {'hello' 'yes' 'no' 'goodbye'} 2
Funzioni che operano su stringhe (1) strcat concatena 2 stringhe strcmp paragona 2 stringhe findstr cerca una sottostringa strrep sostituisce una sottostringa con un'altra upper, lower trasforma in maiuscole, minuscole num2str trasforma un numero in stringa 3
Funzioni che operano su stringhe (2) sprintf(format, A...) usa la stringa di formattazione format per visualizzare i dati contenuti in A e nelle variabili successive. I formati seguono lo standard del linguaggio C, alcuni esempi: %2d = numero intero con 2 cifre %e = numero reale con notazione esponenziale %5.2f = numero reale con 5 cifre e 2 decimali 4
Esempi di SPRINTF sprintf('%0.5g',(1+sqrt(5))/2) 1.618 sprintf('%0.5g',1/eps) 4.5036e+15 sprintf('%15.5f',1/eps) 4503599627370496.00000 sprintf('%d',round(pi)) 3 sprintf('%s','hello') hello sprintf('the array is %dx%d.',2,3) The array is 2x3. sprintf('\n') è il caporiga su tutte le piattaforme Maggiori dettagli con: help sprintf 5
Ingresso/Uscita (1) save filename content options salva il workspace in un file.mat che è un formato binario con documentazione pubblica può salvare anche solo alcune variabili load filename carica le variabili contenute nel file specificato whos -file filename mostra le variabili contenute in filename 6
Ingresso/Uscita (2) Lettura/scrittura di file Excel [Numbers, Text] = xlsread(filename,...) xlswrite(filename, M) Lettura/scrittura di file XML xmlread(filename,...) xmlwrite(filename,m) Lotus 1-2-3 wk1read(filename,...) wk1write(filename,m) 7
Ingresso/Uscita (3) Lettura / Scrittura di file di testo [A,B,C,...] = textread('filename','format') fid = fopen(filename); C = textscan(fid, 'format'); fclose(fid); 8
Toolbox Un toolbox è un insieme di funzioni vendute separatamente come un pacchetto aggiuntivo. Alcuni esempi: statistics control system image processing instrument control financial 9
Simulink tool indipendente da Matlab per la simulazione di sistemi dinamici 10
Interfaccia utente grafica (GUI) Un'interfaccia utente permette un'interazione intuitiva con l'utente mediante elementi grafici chiamati widget. Fra questi ci sono bottoni, caselle di testo, grafici etc. Matlab permette di creare GUI mediante un'interfaccia dedicata chiamata GUIDE (Graphic User Interface Development Environment) 11
GUIDE guide è un designer di interfacce grafiche Introduzione a Matlab widget a sx pannello a dx 12
GUIDE I widget si possono trascinare sul pannello e poi si possono configurare numerosi parametri Introduzione a Matlab 13
GUIDE guide salva un file.fig in cui sono memorizzati tutti i widget ciascuno con le proprie configurazioni e un file.m dove ci sono le funzioni che vengono chiamate in corrispondenza delle azioni dell'utente. Ad esempio ogni volta che viene premuto un bottone viene eseguita una funzione associata a quel bottone (callback). Ogni widget ha un handle (maniglia) che permette di cambiarne le proprietà, può essere utilizzato da tutte le funzioni. 14
GUIDE Esempio di una callback, si usano le funzioni get e set per leggere e scrivere le proprietà indirizzate da handles % -------------------------------------------------------------------- function varargout = pushbutton1_callback(h,... eventdata, handles, varargin) val = str2double(get(handles.edit1,'string')); digits = ceil(log10(val+1)); set(handles.edit2,'string',mod(val*val,10^digits)) 15
Esempi di impieghi professionali Matlab@Elettra Matlab@Acculite... 16