我刚刚将包RandomMatrices.jl下载到julia,因为我需要计算Tracy-Widom密度。然而,文档并没有帮助我理解它的含义:
immutable TracyWidom <: ContinuousUnivariateDistribution
end
这个TracyWidom
名称是什么类型的?我应该提供什么才能使用函数
pdf(d::TracyWidom, t::Real)
包含在TracyWidom.jl中?
答案 0 :(得分:6)
包定义了TracyWidow
类型,没有字段。您可以通过键入TracyWidow
来创建TracyWidow()
类型的新实例。
要计算TracyWidow
发布内容的PDF,请使用pdf(TracyWidow(), 0.5)
。
您可以从pdf
类型签名中找出这一点:第一个参数应该是TracyWidow
类型的对象,第二个类型是Real
。
Julia有一个rich type system,但此处的相关内容如下:abstract
,无法创建,immutable
,创建后无法修改,以及type
这是“正常”类型。
在基于此的Distributions.jl中,为每个分发定义了类型,例如正态分布是
immutable Normal <: ContinuousUnivariateDistribution
μ::Float64
σ::Float64
# Some other stuff...
end
更有意义,因为它由这两个参数定义 - TracyWidow
不需要任何参数,但我们仍然遵循相同的风格。 <: ContinuousUnivariateDistribution
表示Normal
和TracyWidow
都是ContinuousUnivariateDistribution
s,这是一种抽象类型。