Come inserire M-file in matlab
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"
creo gli M-file "funzione" e "derivata"
funzione:
derivata
eseguo la function:
e mi da questo errore
Premesso che il programma da me creato funziona,dove ho sbagliato?
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
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 è:
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ì:
Spero che così funzioni. Onestamente non ho testato e sono andato molto a memoria e ad occhio. Fammi sapere se va.
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.
Funziona perfettamente
