Come inserire M-file in matlab

One2
Vorrei sapere come inserire degli M-file in una funciton che ho creato.Sò che devo utilizzare il simbolo @,ma non ho capito bene come utilizzarlo.Vi scrivo un esempio:
Qui creo la mia function "prova"
function [xk,cont,flag]=prova(g,gd,a,b,max1,max2,tollx,tollf)

creo gli M-file "funzione" e "derivata"
funzione:
f = x^2+2

derivata
fd = 2*x

eseguo la function:
[xk,cont,flag]=prova(@funzione,@derivata,a,b,max1,max2,tollx,tollf)

e mi da questo errore
Attempt to execute SCRIPT funzione as a function:INDIRIZZO

Premesso che il programma da me creato funziona,dove ho sbagliato?

Risposte
Lory314
Per ciascuna funzione che vuoi passare tramite puntatore (@) devi creare una function. Esempio: supponiamo che vuoi creare una function che rappresenti la funzione $f(x)=x^2+2$.
La function da creare è:
function fun = f(x)
 fun = 2.*x+2
end

N.B.: dato che ho chiamato questa function f dovrai salvarla come f.m. In maniera simile costruisci df.

Poi quando chiami la function prova devi chiamarla così:
function [xk,cont,flag]=prova(@g,@gd,a,b,max1,max2,tollx,tollf)


Spero che così funzioni. Onestamente non ho testato e sono andato molto a memoria e ad occhio. Fammi sapere se va.

One2
Funziona perfettamente :D

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.