Il messaggio di errore "dice" che "fname" non è nè una variabile nè una funzione; in pratica, "non esiste".
L'errore consiste dunque nel passare ad una funzione (feval) come parametro una variabile "non definita".
Come detto nella risposta precedente, la funzione feval richiede come primo parametro o l'handle di una funzione od una stringa contenente il nome di una funzione.
La funzione "feval" semplicemente esegue la funzione che le viene passata come primo parametro passando a questa gli altri parametri.
Tralasciamo per un momento gli handles; un modo corretto per utilizzare la funzione "feval" passandogli come primo argomento una stringa è, per esempio:
a=0:0.1:2*pi;
y=sin(a);
Queste due linee di codice sono equivalenti alle seguenti:
a=0:0.1:2*pi;
y=feval('sin',a);
in entrambi i casi viene invocata la funzione "sin" (seno) e ad essa viene fornito in input il vettore "a" che contiene una serie di valori (angoli in radianti).
Nel primo caso la funzione "sin" viene invocata direttamente (come si fa "normalmente" con le funzioni), nel secondo caso è la funzione "feval" che si prende carico di invocare la funzione "sin" e di fornirgli in input il vettore "a".
Nel tuo caso, "fname", essendo il primo parametro fornito alla funzione "feval" deve essere una stringa (abbiamo, per il momento, tralasciato gli handles) contenente il nome di una funzione.
In questo senso, il secondo dei due esempi precedenti poteva essere scritto così:
a=0:0.1:2*pi;
fname='sin';
y=feval(fname,a);
Per quanto riguarda gli handle, la spiegazione migliore la puoi trovare qui:
http://it.mathworks.com/help/matlab/ref/function_handle.html
http://it.mathworks.com/help/matlab/matlab_prog/overview-1.html
http://it.mathworks.com/help/matlab/matlab_prog/applications-of-function-handles.html
L'esempio precedente può essere quindi riscritto, utilizzando l'handle della funzione "sin" così:
a=0:0.1:2*pi;
fname=@sin;
y=feval(fname,a);
"fname" non è più, in questo caso, una stringa, ma, appunto l'handle della funzione "sin".
Quello che devi fare, per eliminare l'errore nel tuo script, è verificare "fname" e scoprire perchè non risulta definito.
Da "qualche parte" nel tuo codice deve esserci una di queste due istruzioni:
fname='nome_di_una_funzione'
fname=@nome_di_una_funzione
dove "nome_di_una_funzione" può essere, una funzione di MatLab (come la funzione "sin" degli esempi) od una funzione che hai scritto tu, in un file ".m".
Nel caso il codice che hai pubblicato sia a sua volta parte di una funzione ci sono almeno tre possibilità:
la variabile "fname" deve essere passata a questa funzione come parametro a questa funzione
la variabile "fname" deve essere dichiarata come variabile "globale"
la variabile "fname" deve essere inizializzata all'interno della funzione prima che venga passata come parametro alla funzione "feval".
In tutti e tre i casi, "fname" deve essere o l'handle di una funzione od una stringa contenente il nome di una funzione.
Hope this helps.