Ode45 handles function error

조회 수: 1 (최근 30일)
esat gulhan
esat gulhan 2020년 1월 2일
댓글: esat gulhan 2020년 1월 2일
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
esat gulhan
esat gulhan 2020년 1월 2일
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 2020년 1월 2일
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.

댓글을 달려면 로그인하십시오.

답변 (0개)

카테고리

Help CenterFile Exchange에서 Graphics Object Identification에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by