Описание StepRange в Юлии - PullRequest
       3

Описание StepRange в Юлии

0 голосов
/ 24 сентября 2018

во время работы в программировании julia, для создания массива вместо a=[1:1:20...] я использовал a=[1:1:20], и он создал массив, говорящий "1-element Array{StepRange{Int64,Int64},1}".Что это значит "1-element Array{StepRange{Int64,Int64},1}"?что означает StepRange

1 Ответ

0 голосов
/ 24 сентября 2018

Из документации StepRange (введите ?StepRange в REPL Julia, чтобы увидеть это):

StepRange{T, S} <: OrdinalRange{T, S}

Диапазоны с элементами типа T с интервалом типа S.Шаг между каждым элементом является постоянным, и диапазон определяется в терминах start и stop типа T и step типа S.Ни T, ни S не должны быть типами с плавающей запятой.Синтаксис a:b:c с b > 1 и a, b и c всеми целыми числами создает StepRange.

Так, например,

julia> typeof(1:1:20)
StepRange{Int64,Int64}

и

julia> [1:1:20]
1-element Array{StepRange{Int64,Int64},1}:
 1:1:20

, таким образом, составляет Vector (1D Array), содержащий один StepRange.Если вы хотите реализовать ленивый StepRange, я бы порекомендовал collect(1:1:20) вместо использования сплаттинга ([1:1:20...]).

Вы можете получить доступ к start / step / stop полям StepRange используя:

julia> r = 1:1:20
julia> r.start
1

julia> r.stop
20

julia> r.step
1
...