为什么我得到MethodError:Float64类型的对象不可调用?

时间:2019-11-27 09:49:29

标签: julia

我具有此功能:

function prob(q, na, mask)
            q0 = round(Int, q.>0)
            m0 = round(Int, mask)
            return prod((q0 + (1-2q0).*pdet0(na)).^m0)
        end

其中pdet0()是另一个函数,当我想调用该函数时,我看到一个MethodError: objects of type Float64 are not callable,显然错误出在函数的最后一行,并且与放置变量有关在带括号的表达式之前,但我真的看不到它,因为它对我来说很好。

2 个答案:

答案 0 :(得分:3)

您需要提供运行该功能并重现该错误所需的所有信息。什么是// Changing the Notification Title, Description, and its Visibility DownloadManager mgr = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); Uri uri = Uri.parse("///.mp3"); DownloadManager.Request req = DownloadManager.Request(uri); req.setTitle("Download"); req.setDescription("Kick Ass Description"); req.setVisibility(Request.VISIBILITY_VISIBLE_COMPLETION_ONLY); qna?什么是mask

答案 1 :(得分:3)

正如Kristoffer所说,鉴于您的示例没有运行,很难肯定地说,但罪魁祸首很可能是pdet0(na),它被解释为“用参数{{调用函数pdet0 1}}。

很可能na是代码中的pdet0数字,从而引起错误。重现该错误的最小工作示例为:

Float64

您需要考虑一下julia> function1 = 1.0 1.0 julia> function1(5) ERROR: MethodError: objects of type Float64 are not callable Stacktrace: [1] top-level scope at REPL[2]:1 是什么以及为什么要调用它。您是否有任何机会来自Matlab并试图索引到向量pdet0中?这将是Julia中的pdet0,如果pdet0[na]是向量并且pdet0和Integer,它将起作用。