这是我目前在做什么:创建的随机真一阵列/假
a = trues(100)
for i in 1:length(a)
a[i] = rand()>0.5 ? true : false
end
有没有更好的(快)的解决方案?
这是我目前在做什么:创建的随机真一阵列/假
a = trues(100)
for i in 1:length(a)
a[i] = rand()>0.5 ? true : false
end
有没有更好的(快)的解决方案?
在朱莉娅0.4,你可以写bitrand(100)
:
julia> bitrand(100)
100-element BitArray{1}:
true
true
false
false
true
⋮
true
false
true
true
true
您可以在此使用Compat
包在旧版本朱莉娅获得,也可以使用旧名称,randbool
(相同的行为,不同的名称)。 Simon的答案rand(Bool,100)
有效,但它给出了Array{Bool}
而不是BitArray
-一种特殊的数据类型,它使用布尔值仅存储一个布尔值来紧凑地存储布尔数组。
我没有基准,但最快的选择很可能是:
...看到Multi-dimensional Arrays茱莉亚文档页面的底部。
这是新的[0.4 API](http://docs.julialang.org/en/latest/stdlib/numbers/?highlight=bitrand#Base.bitrand)。你可以在0.3上使用它[Compat.jl](https://github.com/JuliaLang/Compat.jl)包 - 它以前被命名为['randbool'](http://docs.julialang.org/ EN /释放-0.3/STDLIB /数字/?突显= randbool#Base.randbool)。 – 2015-02-05 22:36:27
非常感谢!我写了'Pkg.update()',然后'使用compat.jl',我收到'警告:需要“compat”没有定义相应的模块并且'bitrand'没有被定义。如果这不能轻易解决,我会打开一个新的帖子,我猜。谢谢 – 2015-02-05 22:46:22
'Pkg.add(“Compat”)'然后'使用Compat'。在Julia使用软件包时,通常会省略'.jl'后缀。 – 2015-02-05 22:51:21