Distrubtions.jl MvNormal 的样本有 N 个变量 returns 一个标量而不是大小为 N 的元组

A sample for Distrubtions.jl MvNormal with N variables returns a scalar instead of tuple of size N

所以我使用 1Distributions.jl1,并且我从多变量正态样本中采样 - 我希望 N 随机变量的样本大小为 N,而不是 1.

这是我的代码 - 我是在误解它在做什么,还是我的代码是错误的?

using Distributions
using LinearAlgebra
N = 3
mu =[1,1,1]
cov = Matrix(1.0I, N, N)  

d = MvNormal(mu,cov)
x =rand(d,100)
println(x[1])

当我查看第一个样本时,它不是长度 3,而是一个标量:

julia> include("dist.jl")
-0.02020323039551508

结果返回为 Matrix 而不是一组元组:

julia> rand(d,10)
3×10 Matrix{Float64}:
  0.99872   1.67639   2.13745  0.961745  …  1.74531   0.831261   0.104456   2.57985
 -0.503303  1.54691   1.72998  1.73453      1.02923   0.717212   2.99329    0.181151
  0.967349  0.786567  2.02966  1.02071      0.892649  3.63519   -0.374087  -0.347399

x[1] 刚刚返回了矩阵的第一个元素。

因此您可以获得第一个元素,因为(@view 是为了避免数据复制):

julia> @view x[:,1]
3-element view(::Matrix{Float64}, :, 1) with eltype Float64:
 0.7978125656624844
 1.6078955127154368
 1.376647003099504