ml - Introduzione interattiva di MATLAB Vai all'indice del corso
Programmazione, introduzione
Versione 0.7
2prin.00 -
Programmazione ed M-files
2prin.10 -
Script M-files
2prin.15 -
Function M-files
2prin.16 -
Function per il valor medio
torna all'indice del modulo - del corso
2prin.00 - Programmazione ed M-files
Il sistema MATLAB rende disponibile un linguaggio di programmazione piuttosto completo con il quale si possono redigere serie di comandi da registrare in appositi files richiamabili con singoli comandi.
I files per la registrazione dei comandi MATLAB sono detti M-files. Si tratta di files in grado di accogliere linee di caratteri ASCII caratterizzati dall'estensione .m che vengono controllati dalla interfaccia del sistema in modo da facilitare la loro gestione da parte dei programmatori.
Vi sono due generi di M-files chiamati risp. Script M-files e Function M-files.
Gli Script M-files non prevedono argomenti, contengono comandi che richiedono di operare sui dati nel workspace e servono a raggruppare un complesso di comandi che possono essere richiamati con una semplice digitazione del nome del file (senza l'estensione .m).
I Function M-files riguardano moduli di programma, possono disporre di argomenti per dati da elaborare e per risultati da restituire dopo l'esecuzione e contengono comandi in grado di operare sui dati nel workspace e su variabili locali (variabili interne al modulo di programma). Questi files consentono di estendere la portata del linguaggio MATLAB con funzionalita` utili alle applicazioni.
torna all'indice del modulo - del corso
Quelli che nell'ambito di MATLAB vengono chiamati semplicemente scripts sono gli M-files piu` semplici. Consideriamone un esempio costituito da un file chiamato petali.m con il seguente contenuto.
% Script M-file per il tracciamento di grafici a petali % linea di commento teta=-pi:0.01:pi; % calcoli ro(1,:) = sin(teta).^2; ro(2,:) = 2*sin(5*teta).^2; ro(3,:) = cos(10*teta.^3; ro(4,:) = 5*cos(3.5*teta).^3; for i=1:4 polar(teta,ro(i,:)) % emissione del grafico pause end
Questo file, oltre a comandi che vengono dati normalmente quando si opera in modo interattivo, contiene un costrutto iterativo retto dalla parola chiave for che serve ad organizzare controlli che si uitilizzano nella programmazione piu` classica. Questi comandi possono essere dati anche operando interattivamente ma non consentono un agevole controllo delle elaborazioni: essi possono essere sfruttati pienamente solo entro M-files. possono essere
A sua volta il comando pause comporta una pausa delle elaborazioni che viene interrotta battendo il tasto return; anche questo comando ha poco senso al di fuori degli M-files.
Osserviamo infine che dopo l'esecuzione dei comandi contenuti nel file sono disponibili nel workspace le variabili teta, ro ed i introdotte con i suddetti comandi.
torna all'indice del modulo - del corso
I Function M-files, costituiscono sottoprogrammi che possiamo chiamare functions dell'utente. Esse controllano operazioni su proprie variabili (variabili che appartengono ad un workspace locale accessibile solo dalla function), sugli argomenti di ingresso e su variabili globali. Queste sono variabili dichiarate esplicitamente come globali, caratterizzate dai propri nomi ed accessibili da tutti i files nei quali vengono dichiarate.
Le functions possono essere chiamate da una linea di comando interattivo o da un'altra function. Questo fatto, la disponibilita` di variabili globali che facilitano i collegamenti operativi tra i moduli e la possibilita` di controllare dalle functions e la disponibilita` di comandi che consentono di utilizzare una ampia varieta` di risorse del computer e delle sue periferiche aprono la possibilita` di costruire grandi complessi di functions coordinate (librerie) che consentono di organizzare elaborazioni complesse, articolate e di ampia portata applicativa.
torna all'indice del modulo - del corso
2prin.16 - Function per il valor medio
Consideriamo il testo della seguente function per il calcolo della media delle componenti di un vettore
function m = media(x) % Calcola il valor medio delle componenti del vettore x [r,c]=size(x); if( (~((r==1) | (c==1))) | ((r==1) & (c==1)) ) % controllo error('Argomento non vettore') end m=sum(x)/length(x); % calcolo
La prima linea del testo costituisce la linea di definizione della function. La linea successiva viene detta linea H1, in quanto essa viene utilizzata da un meccanismo di help semplice ma efficace che agevola la documentazione degli M-files. Segue il corpo della function con i comandi che costituiscono il sottoprogramma munitiin generi di commenti.
torna all'indice del modulo - del corso