How do you fix a 'function_handle' error?
Show older comments
I am trying to solve an IVP by using an ODESolver function that calls two other defined functions. I keep getting a message saying, "Undefined function 'ODESolver1' for input arguments of type 'function_handle'. " I don't know how to fix this.
Below is the ODESolver function that I have created
function[X,Y] = ODESolver1(Integrator,RHS,A,B,YA,DX)
NI = int64(((B-A)/DX)+1);%Number of Integration Steps
X = zeros(NI,1);
Y = zeros(NI,1);
%Initial Condition
X(1)=A;
Y(1)=YA;
for i = 1:NI-1
[X(i+1),Y(i+1)]=Integrator(X(i),Y(i),DX,RHS);
end
end
And now this is my script that keeps getting me function_handle errors
[X1,Y1] = ODESolver1(@Euler,@HK20,0,0.2,0.4,0.01)
[X2,Y2] = ODESolver1(@Euler,@HK30,0,0.2,0.4,0.01)
[X3,Y3] = ODESolver1(@Euler,@HK40,0,0.2,0.4,0.01)
figure (1)
plot(X1,Y1,X2,Y2,X3,Y3)
xlabel('Time')
ylabel('H Concentration')
legend('K20','K30','K40')
4 Comments
madhan ravi
on 3 May 2019
Upload other function Euler
Adam
on 3 May 2019
Is ODESolver1 in a location on your path?
The 'for input arguments of type 'function_handle'' part of those type of error messages is usually a red herring and it simply cannot find any function of that name, whatever the inputs.
If it found the function but the first argument should be something other than a function handle you should get a different error to that.
John Morabito
on 3 May 2019
Edited: Jan
on 3 May 2019
Jan
on 3 May 2019
There is a missing "=" in the definition of HK20()
Answers (1)
Jan
on 3 May 2019
0 votes
Where is thze function ODESolver1 stored? In an M-files called "ODESolver1.m"? Is this stored in a folder, which is contained in the path? The error message means, that this function is not found, so either there is a typo in the file name or the parent folder is not contained in Matlab's path.
Categories
Find more on MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!