创建一个随机数组 True/False
Create a array of random True/False
这是我目前正在做的事情:
a = trues(100)
for i in 1:length(a)
a[i] = rand()>0.5 ? true : false
end
是否有更好(更快)的解决方案?
我还没有对它进行基准测试,但最快的选择似乎是:
a = rand(Bool,100,1)
...请参阅 Multi-dimensional Arrays 上的 Julia 文档页面底部。
在 Julia 0.4 中你可以这样写 bitrand(100)
:
julia> bitrand(100)
100-element BitArray{1}:
true
true
false
false
true
⋮
true
false
true
true
true
您可以使用旧版本 Julia 中的 Compat
包来获取它,或者您可以使用旧名称 randbool
(相同的行为,不同的名称)。西蒙对 rand(Bool,100)
的回答有效,但它给出了 Array{Bool}
而不是 BitArray
– 一种特殊的数据类型,每个布尔值仅使用一个位来紧凑地存储布尔数组。
这是我目前正在做的事情:
a = trues(100)
for i in 1:length(a)
a[i] = rand()>0.5 ? true : false
end
是否有更好(更快)的解决方案?
我还没有对它进行基准测试,但最快的选择似乎是:
a = rand(Bool,100,1)
...请参阅 Multi-dimensional Arrays 上的 Julia 文档页面底部。
在 Julia 0.4 中你可以这样写 bitrand(100)
:
julia> bitrand(100)
100-element BitArray{1}:
true
true
false
false
true
⋮
true
false
true
true
true
您可以使用旧版本 Julia 中的 Compat
包来获取它,或者您可以使用旧名称 randbool
(相同的行为,不同的名称)。西蒙对 rand(Bool,100)
的回答有效,但它给出了 Array{Bool}
而不是 BitArray
– 一种特殊的数据类型,每个布尔值仅使用一个位来紧凑地存储布尔数组。