如何在Julia中创建均匀随机矩阵?

问题描述 投票:5回答:3

l要获得一个具有从[-1,2]采样的均匀随机值的矩阵

x= rand([-1,2],(3,3))
3x3 Array{Int64,2}:
 -1  -1  -1
  2  -1  -1
 -1  -1  -1

但是它只考虑了-1和2,我正在寻找连续值,例如-0.9,0.75,-0.09,1.80。我该怎么办?

matrix random julia
3个回答
7
投票

对于[a,b]范围内的随机数

rand() * (b-a) + a

并且它也适用于矩阵

rand(3,3) * (2 - (-1)) - 1
3x3 Array{Float64,2}:
 1.85611   0.456955   -0.0219579
 1.91196  -0.0352324   0.0296134
 1.63924  -0.567682    0.45602  

11
投票

注:我在这里假设您正在寻找统一的随机变量。

您也可以使用Distributions软件包:

## Pkg.add("Distributions") # If you don't already have it installed.
using Distributions
rand(Uniform(-1,2), 3,3)

但是,我确实非常喜欢isebarn的解决方案,因为它使您思考潜在概率分布的实际属性。


3
投票

您需要将FloatRange{Float64}与所需的step一起使用:

julia> rand(-1.0:0.01:2.0, 3, 3)
3x3 Array{Float64,2}:
 0.79  1.73   0.95
 0.73  1.4   -0.46
 1.42  1.68  -0.55
© www.soinside.com 2019 - 2024. All rights reserved.