| V I S U A L I Z Z A D I S C U S S I O N E |
| Aiace |
Inserito il - 28/10/2005 : 11:17:11 Questa è l'intestazione del programma che simula il metodo delle successive bisezioni
function [c,it]=bisezioni(f,int,tol,itmax)
Quando voglio eseguire questa function, cosa devo passare come parametro per la f? Il problema è che il programma usa la l'istruzione feval(f,a) che valuta la funzione reale f nell'ordinata a; f dovrebbe essere la stringa che rappresenta l'espressione della funzione da valutare, ma se scrivo ad esempio:
f= 'cos(x) + x' e poi [c,it]=bisezioni(f,[0 pi/2],-10,40)
mi da come errore: ??? Error using ==> feval Invalid function name 'cos(x) + x'.
Qualcuno sa cosa sbaglio? (questa cosa l'ha spiegata il prof) Grazie  |
| 4 U L T I M E R I S P O S T E (in alto le più recenti) |
| freedom_for_all |
Inserito il - 11/11/2005 : 19:38:46 azz... era lo stesso errore mio |
| Chilavert |
Inserito il - 28/10/2005 : 11:31:30 Prego, ti consiglio ancora di guardare i programmi nella sezione download. Ce ne sono tanti e ti potrebbero servire... |
| Aiace |
Inserito il - 28/10/2005 : 11:29:36 Mi mancava la inline, ora funziona! Grazie mille! |
| Chilavert |
Inserito il - 28/10/2005 : 11:23:51 Non ricordo più molte cose di Matlab, ma so bene che mei programmi che io facevo (e che sono presenti nella sezione download del forum, alla quale ti consiglio di dare un'occhiata), usavo la funziona inline. Data una funzione di tipo stringa, ti permetteva di convertirla in un oggetto utilizzabile come se fosse una funzione vera e propria.
Esempio, se hai che g = 'cos(x) + x', puoi fare f = inline(g);
E a questo punto valutare la funzione in questo modo var1 = f(0); var2 = f(1);
etc etc... Spero di esserti stato d'aiuto. |
|
|