Error using feval and Invalid function name

5 Ansichten (letzte 30 Tage)
Víctor Sánchez
Víctor Sánchez am 16 Jan. 2022
Kommentiert: Munna am 7 Jan. 2025
Please friends, i will aprecciate your help,
I have this code:
function I= Trapecios(f,a,b,n)
%Fórmula Trapecios compuesta
h=(b-a)/n;
x=a:h:b;
x=x(:);
for i=1:n-1
k1=feval(f,x(i));
pesos=[1 2*ones(1,n-1) 1];
I=h./2*sum(pesos*k1);
end
end
So when I input the arguments, issues these messagges:
>> Trapecios('x/56',-56/2,9*56/10,8)
Error using feval
Invalid function name 'x/56'.
Error in Trapecios (line 7)
k1=feval(f,x(i));
  2 Kommentare
Munna
Munna am 7 Jan. 2025
Error in RCGAF (line 56)
ObjVal(i)=feval(objfun, chromosomes(i,:)); this problem come during running my slx please solve
Munna
Munna am 7 Jan. 2025
what problem in objVal funtion

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Voss
Voss am 16 Jan. 2022
You can use an anonymous function, e.g., f = @(x)x/56, or a named function, rather than a character array (f = 'x/56') for feval.
Trapecios(@(x)x/56,-56/2,9*56/10,8) % using anonymous function @(x)x/56
ans = 43.1200
Trapecios(@divide_by_56,-56/2,9*56/10,8) % using a handle to a named function, defined below
ans = 43.1200
Trapecios('divide_by_56',-56/2,9*56/10,8) % using the name of the function
ans = 43.1200
function out = divide_by_56(x)
out = x/56;
end
function I= Trapecios(f,a,b,n)
%Fórmula Trapecios compuesta
h=(b-a)/n;
x=a:h:b;
x=x(:);
for i=1:n-1
k1=feval(f,x(i));
pesos=[1 2*ones(1,n-1) 1];
I=h./2*sum(pesos*k1);
end
end
  2 Kommentare
Víctor Sánchez
Víctor Sánchez am 16 Jan. 2022
It worked bro!!!!... Thank you thank you a lot. !!!
Voss
Voss am 16 Jan. 2022
No problem!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Function Creation finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by