在函数matlab中调用函数

时间:2016-04-18 04:29:00

标签: matlab function

我定义了一个名为CARE_SAV的函数,它包含一个递归过程,代码是

Class.forName("com.mysql.jdbc.Driver");
Connection conn = null;
conn = DriverManager.getConnection("jdbc:mysql://hostname:port/dbname","username", "password");

//Create statement

//Execute statement
//Iterate over results  
//close statement  
conn.close(); // close connection

该功能本身运行完美。但是,当我定义另一个函数(ALS)并调用此CARE_SAV时,错误会一直弹出,表示局部变量可能已更改为匹配局部变量值。因此,ALS第6行出现错误.ALS代码如下所示

function [miu_tau_c,miu_tau] = CARE_SAV(beta,Yt,t,miu_1)
global miu_tau
global t
global miu_1
if  t > 1  
    miu_tau_c = beta(1)+beta(2) * ...
             [CARE_SAV(beta, Yt, t-1, miu_1)]+beta(3)*abs(Yt(t-1));
    miu_tau  = [miu_tau;miu_tau_c];  

else 
    miu_tau_c = miu_1;
    miu_tau  = [miu_tau;miu_tau_c];
end

有人可以向我解释我在这里发生了什么吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

在CARE_SAV中,您有:

miu_tau_c = miu_1; - 将miu_1作为全局变量。

然后,在另一个功能中,您有as input miu_1 AGAIN,并且您呼叫global miu_1 AGAIN。这是问题所在。

尝试从第二个功能中的输入中删除miu_1。它可能有用,但在这样的函数中使用全局变量,不建议这样做。