问题描述:
matlab中如何让循环中的某一句只执行一次?或如何对一个变量初始化一次?
我在matlab中使用ode45解微分方程function1,而function1中有一个时变参数,编写为function2,function2中有一个句 a=a+b; 但之前没有对a初始化,matlab就提示 “the variable 'a' might be used before it is defined ”.如果开头初始化a=0,那么每次迭代时,a都会被重置到0.应该怎么让a只在第一次初始化,后面就不再次执行a=0这句?
解决了,用全局变量global,原来我用的global只在主文件中定义了一次,没在function文件中声明,所以没传过去.正确的做法是在所用到的文件中都加上 “ global a;” 这一句.
我在matlab中使用ode45解微分方程function1,而function1中有一个时变参数,编写为function2,function2中有一个句 a=a+b; 但之前没有对a初始化,matlab就提示 “the variable 'a' might be used before it is defined ”.如果开头初始化a=0,那么每次迭代时,a都会被重置到0.应该怎么让a只在第一次初始化,后面就不再次执行a=0这句?
解决了,用全局变量global,原来我用的global只在主文件中定义了一次,没在function文件中声明,所以没传过去.正确的做法是在所用到的文件中都加上 “ global a;” 这一句.
问题解答:
我来补答展开全文阅读