ml - Introduzione interattiva di MATLAB       Vai all'indice del corso

Programmazione, introduzione
Versione 0.7

Indice del modulo

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

2prin.10 - Script M-files

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

2prin.15 - Function M-files

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