economia news e media viaggi informatica internet salute e benessere int rattenimento e spettacolo sport tempo libero istruzio ne e formazione arte cultura scienza

I link preferiti della guida

Il Sondaggio

Che cosa cerchi?

Guarda i risultati

Principianti

Le funzioni in Matlab

A cura di Giuseppe Ciaburro

Pubblicato il 17/11/2001

Le funzioni in Matlab, come e perchè utilizzarle.

Le Funzioni sono M-file che possono accettare argomenti d'entrata e forniscono argomenti di uscita. Il nome dell'M-file e della funzione deve essere lo stesso. Le Funzioni operano su variabili definite nel workspace proprio, separato dal workspace a cui si accede all'ingresso di MATLAB, cioè le variabili usate all'interno della funzione sono locali.
Alla nuova funzione deve essere dato un nome ed un' estensione '.m'. Questo file dovrebbe essere salvato nella stessa directory che contiene il software del Matlab, o in una directory contenuta nel percorso di ricerca del Matlab. La prima linea del file dovrebbe contenere la sintassi di questa funzione nella forma:

function [uscita1,uscitat2] = filename( ingresso1, ingresso2, ingresso3)

dove gli argomenti d'ingresso e d'uscita possono essere delle variabili.
Un buono esempio è fornito dalla funzione rank. L'M-file rank.m è disponibile nella directory

toolbox/matlab/matfun

Si può lanciare il file digitando

rank Il file in questione è il seguente.

function r = rank(A,tol)
% RANK Matrix rank.
% RANK(A) provides an estimate of the number of linearly
% independent rows or columns of a matrix A.
% RANK(A,tol) is the number of singular values of A
% that are larger than tol.
% RANK(A) uses the default tol = max(size(A)) * norm(A) * eps.
s = svd(A);
if nargin==1
tol = max(size(A)) * max(s) * eps;
end
r = sum(s > tol);

La prima linea di una funzione M-file comincia con la funzione keyword.La quale da il nome alla funzione ed ordina gli argomenti. In questo caso,ci sono due argomenti di input ed uno di output. Le righe seguenti, rappresentano dei commenti per un aiuto, non vengono considerate nell'applicazione, e sono precedute dal simbolo %. Queste linee si stampano quando si digita:

help rank

La prima linea del testo di aiuto è la H1 line che MATLAB espone quando si ricerca aiuto digitando help on nella directory che contiene la funzione. Il resto del file rappresenta codice eseguibile MATLAB definendo la funzione. La variabile s presente nel corpo della funzione, così come le variabili sulla prima fila r, A e tol, sono del tutto locali alla funzione;sono indipendenti e separate da qualsiasi variabile nel workspace di MATLAB. Questo esempio illustra un aspetto delle funzioni di MATLAB, che ordinariamente non si trovano negli altri linguaggi di programmazione - un numero variabile di argomenti. La funzione rank può essere usata in molti modi diversi:

rank(A)
r = rank(A)
r = rank(A,1.e-6)

Molte M-file lavorano così. Se nessuno argomento di output è approvvigionato, il risultato è immagazzinato in ans. Se il secondo argomento di input non è approvvigionato, la funzione calcola un valore di default. Fra il corpo della funzione, due quantità chiamate nargin e nargout sono disponibili,le quali ci dicono il numero di argomenti di input e di output coinvolti in ciascun uso della funzione. La funzione rank usa nargin, ma non ha bisogno di usare nargout.
Molti dei comandi di matlab rappresentano delle funzioni infatti quando immetti un comando come roots, plot, o step nel Matlab, in realtà fai eseguire un m-file con ingressi ed uscite che sono stati scritti per completare un compito specifico. Questi tipi di file sono simili ad un sottoprogramma di un linguaggio di programmazione, in quanto essi hanno degli ingressi (parametri che sono passati all'm-file), delle uscite (valori che ritornano dall'm-file), e un corpo di comandi che possono contenere variabili locali. Il Matlab chiama questi m-file functions; puoi scrivere le tue funzioni usando il comando function .

Vuoi essere aggiornato sulle novità della guida?

Feed RSS XML vostro feed RSS