Contenuto principale

function_handle

Descrizione

Un handle di funzione è un tipo di dati MATLAB® che rappresenta una funzione. Un uso tipico degli handle di funzione è quello di passare una funzione a un'altra funzione. Ad esempio, è possibile utilizzare gli handle di funzione come argomenti di input per funzioni che valutano espressioni matematiche su un intervallo di valori. Altri usi tipici degli handle della funzione comprendono:

  • La specifica delle funzioni di richiamo (ad esempio, un richiamo che risponde a un evento dell'interfaccia utente o interagisce con l'hardware di acquisizione dati).

  • La costruzione di handle a funzioni definite in linea invece che memorizzate in un file di programma (funzioni anonime).

Creazione

Creare un handle della funzione utilizzando l'operatore @. Gli handle di funzione possono rappresentare funzioni denominate o anonime.

  • Gli handle delle funzioni denominati rappresentano le funzioni nei file di programma esistenti, comprese le funzioni che fanno parte di MATLAB e le funzioni create dall'utente utilizzando la parola chiave function. Per creare un handle a una funzione nominata, anteporre al nome della funzione @.

    Ad esempio, creare un handle alla funzione sin, quindi utilizzare fminbnd per trovare il valore di x che minimizza sin(x) nell'intervallo compreso tra 0 e 2 π :

    f = @sin;
    m = fminbnd(f,0,2*pi);
  • Handle delle funzioni anonime (spesso chiamati funzioni anonime) rappresentano singole espressioni eseguibili in linea che restituiscono un output. Per definire una funzione anonima, includere i nomi degli argomenti di input tra parentesi subito dopo l'operatore @, quindi specificare l'espressione eseguibile.

    Ad esempio, creare un handle a una funzione anonima che valuti l’espressione x2y2:

    f = @(x,y) (x.^2 - y.^2);

    Le funzioni anonime possono accettare più input ma restituiscono un solo output.

Esempi

comprimi tutto

In un file nella cartella corrente, creare una funzione denominata cubicPoly che accetti un input per valutare il polinomio cubico x3+x2+x+1.

function y = cubicPoly(x)
y = x.^3 + x.^2 + x + 1; 
end

Per individuare l'integrale di cubicPoly da 0 a 1, passare un handle alla funzione cubicPoly a integral.

q = integral(@cubicPoly,0,1)
q = 
2.0833

Creare l'handle f a una funzione anonima che valuta il polinomio cubico x3+x2+x+1 per un dato valore di x.

f = @(x) x.^3 + x.^2 + x + 1;

Per individuare l'integrale della funzione anonima da 0 a 1, passare il suo handle a integral.

q = integral(f,0,1)
q = 
2.0833

Funzionalità estese

espandi tutto

Cronologia versioni

Introduzione prima di R2006a

espandi tutto