2013-06-09 3 views
0

Je veux mettre une fonction dans feval (f, x) qui a un vecteur comme entrée par ex.MATLAB/Octave: feval avec entrée vectorielle

function [ ret ] = f (x) 
    ret = x(1)^2 - x(2)^2; 
end 

et

x = [1,2] 

mais octave donne toujours un code d'erreur:

`x' undefined near line 6 column 18 
evaluating argument list element number 1 
evaluating argument list element number 1 

Il semble feval ne peut évaluer le nombre et non vecteurs. Est-ce qu'il y a un moyen de faire ça?

Répondre

0

Créer une poignée à votre fonction, puis appelez feval sur la poignée, en lui transmettant votre vecteur comme argument:

h = @(x)myfun(x); 
x = [1, 2]; 
y = feval(h, x); 

J'ai essayé dans Octave sur votre fonction et il semble fonctionner.

Questions connexes