global variable inside a function

2 次查看(过去 30 天)
Babak
Babak 2014-8-25
Hello every one, In my program I used a solver (ODE45) and as you know, for this purpose I need to define a function. I have an element in my function that change with respect to time. For having time in my function I defined global time but unfortunately I got array of my time. I need to have exact time that solver is using!!. What should I do?
t=0:0.001:2;
[tout,y]=ode45(@(t,X) sys1(X,B,L,Rr),t,zeros(50,1));
%%my function %%
function xdot=sys1(X,B,L,Rr)
global t;
Va=208*cos(2*pi*60*t);
end
Thanks in advance.

回答(1 个)

AJ von Alt
AJ von Alt 2014-8-25
There is no need to use a global. You can pass t in as an argument to your ode function. Example 3 of the ode45 documentation demonstrates this usage.

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by