我刚刚将包RandomMatrices.jl下载到julia,因为我需要计算Tracy-Widom密度.然而,文档并没有帮助我理解它的含义:
immutable TracyWidom <: ContinuousUnivariateDistribution
end
Run Code Online (Sandbox Code Playgroud)
这个TracyWidom名字是什么类型的?我应该提供什么才能使用该功能进行一些测试
pdf(d::TracyWidom, t::Real)
Run Code Online (Sandbox Code Playgroud)
包含在TracyWidom.jl中?
包定义了一个TracyWidom没有字段的类型.您可以TracyWidom通过键入来创建该类型的新实例TracyWidom().
要计算TracyWidom分发的PDF ,请使用pdf(TracyWidom(), 0.5).
您可以从pdf类型签名中找出这一点:第一个参数应该是类型的对象,TracyWidom第二个参数应该是类型Real.
Julia有一个丰富的类型系统,但是这里的相关内容如下:abstract无法创建,immutable在创建后无法修改,type这是"正常"类型.
在Distributions.jl中,它基于此,为每个分布定义了类型,例如正态分布
immutable Normal <: ContinuousUnivariateDistribution
?::Float64
?::Float64
# Some other stuff...
end
Run Code Online (Sandbox Code Playgroud)
这更有意义,因为它由这两个参数定义 - TracyWidom不需要任何参数,但我们仍然遵循相同的风格.这<: ContinuousUnivariateDistribution意味着Normal并且TracyWidom都是ContinuousUnivariateDistributions,这是一种抽象类型.