Function 第45页。如何在调用时更改其中的参数?

Function 第45页。如何在调用时更改其中的参数?,function,matlab,handle,solver,ode,Function,Matlab,Handle,Solver,Ode,我是Matlab新手。我希望你能帮助我。 我必须用ODE45函数解一个ODE系统。下面是描述我的装备的函数 function dNdt = rateEquations(t, y) %populations of corresponding state Ng = y(1); Ns = y(2); Nt = y(3); %All constants used are dropped for the sake of easy reading. 注意参数F %rate eq

我是Matlab新手。我希望你能帮助我。 我必须用ODE45函数解一个ODE系统。下面是描述我的装备的函数

function dNdt = rateEquations(t, y)
  %populations of corresponding state
  Ng = y(1);
  Ns = y(2);
  Nt =  y(3);

  %All constants used are dropped for the sake of easy reading.
注意参数F

  %rate equations
  dNs = s0 * Ng * F - Ns/ t_S1;
  dNt = Ns / t_ISC - Nt / t_T1;
  dNg = -dNt - dNs;

  dNdt = [dNg; dNs; dNt];

end
然后,在我的script.m文件中,我调用'for loop'中的ode45函数。在每次迭代中,我必须更改参数F并将其传递给我的“rateEquations”函数。但我不知道如何实现它

for T = Tmin: dt : Tmax
  %initial conditions
  initialConditions = [N0 0 0];
  timeSpan = [T T+dt];
在调用ODE45之前,必须更改F

  [t,N] = ode45('rateEquations', timeSpan, initialConditions)
等等

end

提前感谢。

您希望将
F
作为派生函数的参数,并将正确的匿名函数传递给
ode45

[t,N] = ode45(@(t,y) rateEquations(t,y,F), timeSpan, initialConditions)

是的,很管用。谢谢。这就是我一直在寻找的东西。:)您还可以使用全局变量执行此操作。但我尝试使用并行计算(parfor),这不喜欢全局变量。但是这对parfor是有效的。@Nzbuu,如果我这样做,我需要使用插值吗?