2015-02-05 6 views

Antwort

9

In Julia 0,4 Sie können bitrand(100) schreiben:

julia> bitrand(100) 
100-element BitArray{1}: 
    true 
    true 
false 
false 
    true 
    ⋮ 
    true 
false 
    true 
    true 
    true 

Sie können dies das Compat Paket in älteren Versionen von Julia mit, oder Sie die alten Namen verwenden können, randbool (gleiches Verhalten, andere Namen). Simons Antwort auf rand(Bool,100) funktioniert, aber es gibt eine Array{Bool} anstelle einer BitArray - ein spezieller Datentyp, der Boolesche Arrays kompakt speichert nur mit einem Bit pro Booleschen.

+1

Dies ist die neue [0.4 API] (http://docs.julaulang.org/en/latest/stdlib/numbers/?highlight=bitrand#Base.bitrand). Sie können es bei 0.3 mit dem Paket [Compat.jl] (https://github.com/JuliaLang/Compat.jl) verwenden - es wurde zuvor ['randbool'] genannt (http://docs.julalang.org/ de/release-0.3/stdlib/zahlen /? highlight = randbool # Base.randbool). –

+0

Vielen Dank! Ich schrieb 'Pkg.update()' und dann 'using compat.jl', ich empfange' Warnung: erfordert "compat" hat kein entsprechendes Modul definiert "und' bitrand' ist nicht definiert. Wenn das nicht einfach gelöst werden kann, werde ich einfach einen neuen Post öffnen. Danke –

+0

'Pkg.add (" Compat ")' und dann 'mit Compat'. Die '.jl'-Suffixe werden in der Regel bei der Arbeit mit Paketen in Julia weggelassen. –

1

Ich habe gebenchmarkt es nicht, aber die schnellste Option scheint wahrscheinlich zu sein:

a = rand(Bool,100,1) 

... die Unterseite der Dokumentationsseite Multi-dimensional Arrays Julia sehen.