内功能指数增加

时间:2017-09-07 05:05:35

标签: matlab function input global

我有一个主要的Matlab代码,我用它来计算ode。 主要代码包含许多行,但我只会解释所需的行。

代码如下(简短版):

global array
t0=0
x0=[5,5]
dt=0.01
tfinal=10

[tout,xout]=rk4('equation',t0,x0,dt,tfinal)   % the functions use the function 'equation' and calculates its values at every time from 0 to 20 

其中'等式'是以下类型的另一个函数:

global array 
Dydx = equation(t,x)
Dydx=[x(1)
            x(2)+array(j)]

            j=j+1

然而,可以看出,在函数"等式"有一个变量j,我希望每增加一次rk4迭代。

这意味着当我计算时间t的颂歌时,rk4应该使用函数'等式'并将j增加1,依此类推。

我得到的问题是,如果我试图制作方程式'给出j的输出像[Dydx,j] = equation(t,x)我因rk4而收到错误。

如果在外部函数也获得值时,如何增加内部函数中的j?(尝试全局但在工作空间中将j显示为[])。

我试图将其设为全球,但它不起作用:

global array jcount
t0=0
x0=[5,5]
dt=0.01
tfinal=10
jcount = 1;

[tout,xout]=rk4('equation',t0,x0,dt,tfinal) 


global array jcount
Dydx = equation(t,x)
Dydx=[x(1)
            x(2)+array(jcount)]

            jcount=jcount+1

谢谢。

0 个答案:

没有答案