I want to generate an array of 3 elements
[α, β, γ]
Where each of the 3 elements α, β, γ
is between 0
and 1
, so I tried the below
[α for α in (0:1), β for β in (0:1), γ for γ in (0:1)]
But it failed with error:
syntax: invalid iteration specification
I can do something like the below, but do not think it is the correct way:
for α in (0:1), β in (0:1), γ in (0:1)
println("α: $α, β: $β, γ: $γ")
push!(w, [α, β, γ])
end
@show w
nilshg
2
You can just do [0:1, 0:1, 0:1]
, if you need the variable names as well consider a NamedTuple
2 Likes
I think what you want is something like:
arr = [[α,β,γ] for α in 0:1 for β in 0:1 for γ in 0:1]
2 Likes
mmm, may be my question statement was not clear, I’ll update it.
your code gave me:
8-element Array{Array{Int64,1},1}:
[0, 0, 0]
[0, 0, 1]
[0, 1, 0]
[0, 1, 1]
[1, 0, 0]
[1, 0, 1]
[1, 1, 0]
[1, 1, 1]
What Actual I need, is to include fractions, so it start by 0
any build up to 1
by adding 0.01
,
In Julia, a:b
is always (I think) using increments of 1 to go from a
to b
.
You can specify a step c
by doing a:c:b
So the example still works if you do:
arr = [[α,β,γ] for α in 0:0.01:1 for β in 0:0.01:1 for γ in 0:0.01:1]
If you don’t need the actual array you can get iterate over the same values with:
Iterators.product(0:0.01:1,0:0.01:1,0:0.01:1)
2 Likes
jling
7
how does your original post exhibit this 0.01
increment feature?
1 Like
I was not aware how to represent it