Problema teorico sulle funzioni in matlab
Salve,
una volta implementata una funzone, come faccio a renderla operativa? cioè: se questa funzione prende in input una variabile a, e mi restituisce in output una variabile b, mi aspetto che la variabile a sia data nel command window, e che non sia definita nella funzione stessa: in questo modo in base alla variabile a che immetto nel command window, faccio girare la funzione e ho la b che mi interessa. Ma Matlab mi da errore.
ad esempio: la funzione è:
function =prova (a)
b=a*2
return
end
se nel command window pongo
a=2
e faccio run nell'editor della funzione mi dice:
??? Input argument "a" is undefined.
Error in ==> prova at 2
b=a*2
ma come? non l'ho definito nel command window?
non ci sto capendo
una volta implementata una funzone, come faccio a renderla operativa? cioè: se questa funzione prende in input una variabile a, e mi restituisce in output una variabile b, mi aspetto che la variabile a sia data nel command window, e che non sia definita nella funzione stessa: in questo modo in base alla variabile a che immetto nel command window, faccio girare la funzione e ho la b che mi interessa. Ma Matlab mi da errore.
ad esempio: la funzione è:
function =prova (a)
b=a*2
return
end
se nel command window pongo
a=2
e faccio run nell'editor della funzione mi dice:
??? Input argument "a" is undefined.
Error in ==> prova at 2
b=a*2
ma come? non l'ho definito nel command window?
non ci sto capendo
Risposte
attendo a non confondere gli script con le function...
il comando run serve a far partire gli script contenenti le function, non devi usarlo per lanciare le function da sole
oppure se nel command window scrivi:
a=2
b=prova(a)
ottieni il risultato senza creare nessuno script
il comando run serve a far partire gli script contenenti le function, non devi usarlo per lanciare le function da sole
oppure se nel command window scrivi:
a=2
b=prova(a)
ottieni il risultato senza creare nessuno script
e per lanciare una function come devo fare?
le function non vanno lanciate, devono essere richiamate all'interno del lavoro che si sta svolgendo: come ti ho detto puoi farlo direttamente dal command window oppure crei uno script in cui scrivi prima i dati e poi il richiamo alla funzione, in questo modo premendo run sullo script la funzione richiamata è in grado di leggere correttamente i dati ed eseguire il calcolo