Ode45 handles function error

1 view (last 30 days)
esat gulhan
esat gulhan on 2 Jan 2020
Commented: esat gulhan on 2 Jan 2020
My function ug data is got from edittext of GUI
function ut = ug(handles, x, y)
ut = handles.edit11.String
evalc(ut)
vg is like that
Question: When i put the formula to the push button of gui below to get the dy/dx = ug/vg i got error
Formula: for a=-5:1:5;
tspan = [a 6];
y0 = [-5 5];
[xx,yy] = ode45(@(x,y) (vg(handles, x, y))./(ug(handles, x, y)), tspan, y0);
plot(xx,yy,'-k','linewidth',2);
hold on
end
My code works if i create a function like ut=ug(x,y) .... but if i do like that i cant get datas from edittext. How can i activate the code in ode 45 with datas in edit text??
  3 Comments
esat gulhan
esat gulhan on 2 Jan 2020
Well
I change the formula and limits like that.So div/0 is not problem, i erased evalc(ut) in the function and write
function ut = ugs(handles, x, y)
ut = handles.edit11.String
str2func(ut)
end, and rewrite vg too
Formula: for a=1:1:5; (limits changed)
tspan = [a 6];
y0 = [-5 5];
[xx,yy] = ode45(@(x,y) (vg(handles, x, y))./(ug(handles, x, y)), tspan, y0);
plot(xx,yy,'-k','linewidth',2);
hold on
Now it gives new error,
Error using odearguments (line 90)
@(X,Y)UG(HANDLES,X,Y) must return a column vector.
esat gulhan
esat gulhan on 2 Jan 2020
But if i change code like that
[xx,yy] =ode45(@(x,y) (1.5-0.8*y)./(0.8*x+0.5) , tspan, y0)
it works, but my wish to take formulas from the edit text of gui. I dont want to write all time manuel to the formula.

Sign in to comment.

Answers (0)

Categories

Find more on Graphics Object Identification 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!