Contenuto principale

Creazione di funzioni nei file

Sia gli script che le funzioni consentono di riutilizzare sequenze di comandi memorizzandole in file di programma. Gli script sono il tipo più semplice di programma, poiché memorizzano i comandi esattamente come li di digiterebbe dalla riga di comando. Le funzioni offrono una maggiore flessibilità, soprattutto perché è possibile passare valori di input e restituire valori di output. Ad esempio, questa funzione denominata fact calcola il fattoriale di un numero (n) e restituisce il risultato (f).

function f = fact(n)
    f = prod(1:n);
end

Questo tipo di funzione deve essere definito all'interno di un file, non dalla riga di comando. Spesso, si memorizza una funzione nel file a essa associato. In questo caso, la best practice è utilizzare lo stesso nome per la funzione e per il file (in questo esempio, fact.m), poiché MATLAB® associa il programma al nome del file. Salvare il file nella cartella corrente o in una cartella compresa nel percorso di ricerca di MATLAB.

È possibile chiamare la funzione dalla riga di comando, utilizzando le stesse regole di sintassi che si applicano alle funzioni installate con MATLAB. Ad esempio, calcolare il fattoriale di 5.

x = 5;
y = fact(5)
y =

   120

Un'altra opzione per memorizzare le funzioni è quella di includerle in un file di script. Ad esempio, creare un file denominato mystats.m con alcuni comandi e due funzioni, fact e perm. Lo script calcola la permutazione di (3,2).

x = 3;
y = 2;
z = perm(x,y)

function p = perm(n,r)
    p = fact(n)/fact(n-r);
end

function f = fact(n)
    f = prod(1:n);
end

Prima di R2024a: Le funzioni locali negli script devono essere definite alla fine del file, dopo l'ultima riga di codice dello script.

Chiamare lo script dalla riga di comando.

mystats
z =

     6

Sintassi per la definizione della funzione

La prima riga di ogni funzione è la dichiarazione di definizione che include i seguenti elementi.

La parola chiave function (richiesta)

Utilizzare i caratteri minuscoli per la parola chiave.

Argomenti di output (opzionale)

Se la funzione restituisce un output, è possibile specificare il nome dell'output dopo la parola chiave function.

function myOutput = myFunction(x)

Se la funzione restituisce più di un output, racchiudere i nomi degli output tra parentesi quadre.

function [one,two,three] = myFunction(x)

Se non sono presenti output, è possibile ometterlo.

function myFunction(x)

Oppure è possibile utilizzare parentesi quadre vuote.

function [] = myFunction(x)

Nome della funzione (richiesto)

I nomi validi delle funzioni seguono le stesse regole dei nomi delle variabili. Devono iniziare con una lettera e possono contenere lettere, cifre o trattini bassi.

Nota

Per evitare confusione, utilizzare lo stesso nome sia per il file di funzione che per la prima funzione all'interno dello stesso. MATLAB associa il programma al nome del file, non al nome della funzione. I file di script non possono avere lo stesso nome di una funzione del file.

Argomenti di input (opzionale)

Se la funzione accetta input, racchiudere i nomi tra parentesi dopo il nome della funzione. Separare gli input con virgole.

function y = myFunction(one,two,three)

Se non sono presenti input, è possibile omettere le parentesi.

Suggerimento

Quando si definisce una funzione con più argomenti di input o di output, elencare prima tutti gli argomenti obbligatori. Questo ordine consente di chiamare la funzione senza specificare argomenti opzionali.

Contenuto delle funzioni e dei file

Il corpo di una funzione può includere espressioni valide di MATLAB, dichiarazioni del flusso di controllo, commenti, righe vuote e funzioni annidate. Qualsiasi variabile creata all'interno di una funzione viene memorizzata in un workspace specifico per quella funzione, separato dal workspace di base.

I file di programma possono contenere più funzioni. Se il file contiene solo definizioni di funzioni, la prima funzione è quella principale ed è la funzione che MATLAB associa al nome del file. Le funzioni che seguono la funzione principale o che sono incluse nel codice dello script sono chiamate funzioni locali. Le funzioni locali sono disponibili solo all'interno del file.

Dichiarazioni di fine

Le funzioni terminano con una dichiarazione end, con la fine del file o con la riga di definizione di una funzione locale, a seconda di quale delle tre condizioni si verifica per prima. La dichiarazione end è richiesta se:

  • Qualsiasi funzione del file contiene una funzione annidata (una funzione completamente contenuta all'interno della funzione padre).

  • La funzione è una funzione locale all'interno di un file di funzioni e qualsiasi funzione locale nel file utilizza la parola chiave end.

  • La funzione è una funzione locale all'interno di un file di script.

Sebbene talvolta sia opzionale, utilizzare end per una migliore leggibilità del codice.

Vedi anche

Argomenti

Siti web esterni