如何在julia中创建[-1,1]均匀分布的稀疏矩阵

如何在julia中创建[-1,1]均匀分布的稀疏矩阵,julia,Julia,我读了《sprandn简介》,试图创建一个服从[-1,1]均匀分布的稀疏矩阵 using SparseArrays using Distributions sprandn(100,100,0.3,Uniform(-1,1)) 但它失败了。我很抱歉没有粘贴错误日志。下面是错误在中所述内容的图像 那么,如何生成[-1,1]均匀分布稀疏矩阵呢?sprandn用于从标准正态分布进行采样。但是,您可以使用sprand的一种方法: sprand(m::Integer, n::Integer, densit

我读了《sprandn简介》,试图创建一个服从[-1,1]均匀分布的稀疏矩阵

using SparseArrays
using Distributions
sprandn(100,100,0.3,Uniform(-1,1))
但它失败了。我很抱歉没有粘贴错误日志。下面是错误在中所述内容的图像

那么,如何生成[-1,1]均匀分布稀疏矩阵呢?

sprandn用于从标准正态分布进行采样。但是,您可以使用sprand的一种方法:

sprand(m::Integer, n::Integer, density::AbstractFloat, rfn::Function)
最后一个参数是内部用于对非零值进行采样的函数,您可以这样使用它:

D = Uniform(-1.0, 1.0)
rf(n) = rand(D, n)
sprand(100, 100, 0.3, rf)

如果要指定使用的RNG,需要将其作为第一个位置的另一个参数传递到rf。

sprandn正态分布样本。您需要使用sprand即使这样做,它对我来说仍然不起作用,但这只是一个开始。文档中似乎有一个错误,因为它实际上说要在发行版中使用sprand。我也不明白为什么统一必须包装在函数中。这似乎很奇怪,文档中并没有快速描述。sprandn只是将sprand与randn一起用作随机函数。但是,是的,文档一定是错的,奇怪的是:依赖于发行版的Base对我来说是出乎意料的。我在这里打开了一个关于文档的问题:我并不真的认为Base依赖于发行版。兰德/斯普兰等只允许指定分布。这可能来自发行版或其他任何地方。