我有3个短的函数,我在Matlab里面用3个独立的m文件编写。从另一个函数内部调用一个函数?
主函数称为F_并接受一个输入参数并返回一个包含3个元素的向量。
从F_输出的元素1和2(应该是)使用其他2 m个文件中的函数进行计算,现在让我们称它们为theta0_和theta1_。
下面的代码:
function Output = F_(t)
global RhoRF SigmaRF
Output = zeros(3,1);
Output(1) = theta0(t);
Output(2) = theta1(t) - RhoRF(2,3)*sqrt(SigmaRF(2,2))*sqrt(SigmaRF(3,3));
Output(3) = -0.5*SigmaRF(3,3);
end
和
function Output = theta0_(t)
global df0dt a0 f0 SigmaRF
Output = df0dt(t) + a0 + f0(t) + SigmaRF(1,1)/(2*a0)*(1-exp(-2*a0*t));
end
和
function Output = theta1_(t)
global df1dt a1 f1 SigmaRF
Output = df1dt(t) + a1 + f1(t) + SigmaRF(2,2)/(2*a1)*(1-exp(-2*a1*t));
end
我创建的句柄这些功能如下:
F = @F_;
theta0 = @theta0_;
theta1 = @theta1_;
当我运行F_通过它与t
任何价值,我得到以下错误处理:
F_(1)
Undefined function 'theta0' for input arguments of type 'double'.
Error in F_ (line 9)
Output(1) = theta0(t);
请协助。我在这里做错了什么?
我只希望能够从另一个内部调用一个函数。
您将其定义为'theta0_'并称之为'theta0'。另外,您不需要通过处理来调用它。 – Oleg