【问题标题】:??? Undefined function or variable???未定义的函数或变量
【发布时间】:2013-08-28 21:00:38
【问题描述】:

为什么会报错

???未定义的函数或变量

尝试调用以下函数时:

    function Diff= myfun3(wk,omega)
wcalc=inv(lambda* Passetcovar)*inv(inv(tau * Passetcovar)+ PMat(i,:)'*inv(omega)*PMat(i,:))*(inv(tau * Passetcovar)*Pi+ PMat(i,:)'*inv(omega)*Q(i,:));
Diff=sum((wk-wcalc).^2);
end

函数中的所有参数均已定义且正确。

我正在使用myfun3(wk,omega) 调用此函数,但我收到诸如

之类的错误消息
??? Undefined function or variable 'lambda'.

即使 lambda 已在其他地方定义。

【问题讨论】:

    标签: matlab function error-handling


    【解决方案1】:

    lambda 未在函数工作区中定义,即使它已在您的基础工作区中定义。要么将其作为输入传递给函数,要么将其定义为全局变量。详情请见http://www.mathworks.co.uk/help/matlab/matlab_prog/share-data-between-workspaces.html

    【讨论】:

    • 正确,你也没有定义i。这取决于你想要做什么。你在循环i吗?你的功能是做什么的?您希望如何运行它?使用哪些数据?
    • 是的,我注意到我没有将 i 包含在函数调用中,现在它工作正常 - 谢谢!关键是要让这个功能正常工作,这样我就可以通过改变欧米茄来最小化它——我还没有做到这一点(见我的另一个问题)。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2013-09-27
    • 2015-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多