What does it mean x=-3:0.1:3?

what does it mean x = -3:0.1:3 ? How it works?

Hi @Volodymyr_Pakholok, welcome to our forum. Please take time to format your questions and their titles appropriately. I have already corrected your prior post — please use that as a template/inspiration to edit this post.

8 Likes

For more details about asking questions here, see PSA: make it easier to help you.

I’ve unlisted this thread for now. Once the title is edited, I’ll be happy to restore it.

3 Likes

This is shorthand notation for a range from -3 to 3 (inclusive), with steps of size 0.1, i.e.:

julia> collect(-3:0.1:3)
61-element Vector{Float64}:
 -3.0
 -2.9
 -2.8
 -2.7
  ⋮
  2.7
  2.8
  2.9
  3.0

Here, I’ve used collect to create a vector with every element of the range in it, however most of the time you don’t actually need to do this - it is more efficient to just work with the range, which only stores start and end point and stepsize:

julia> fieldnames(typeof(-3.0:0.1:3.0))
(:ref, :step, :len, :offset)

This allows you to create very large ranges at no extra cost:

julia> x = 1e10:0.1:1e15
1.0e10:0.1:1.0e15

julia> length(x)
9999900000000001

Here I’ve created a range that holds way more elements than I could fit in memory as Float64 - if I need any of them, they will be calculated on the fly:

julia> x[1_234_456_789]
1.01234456788e10
5 Likes