我是 Julia 的新手,我正在嘗試將 LinRange 轉換為 Array 以進行進一步計算。例如我有:
julia> x = LinRange(0, 1, 100)
帶輸出:
100-element LinRange{Float64, Int64}: 0.0,0.010101,0.020202,0.030303,0.040404,0.0505051,0.0606061,0.0707071,0.0808081,0.0909091,0.10101,…,0.89899,0.909091,0.919192,0.929293,0.939394,0.949495,0.959596,0.969697,0.979798,0.989899,1.0
然后我使用以下方法將其轉換為陣列:
julia> x = [x]
帶輸出:
1-element Vector{LinRange{Float64, Int64}}: range(0.0, stop=1.0, length=100)
但是當我嘗試將它作為普通陣列訪問時
julia> x[1]
我將整個 LinRange 作為輸出:
100-element LinRange{Float64, Int64}: 0.0,0.010101,0.020202,0.030303,0.040404,0.0505051,0.0606061,0.0707071,0.0808081,0.0909091,0.10101,…,0.89899,0.909091,0.919192,0.929293,0.939394,0.949495,0.959596,0.969697,0.979798,0.989899,1.0
如果我嘗試訪問第二個元素,我會收到此錯誤:
julia> x[2]
ERROR: BoundsError: attempt to access 1-element Vector{LinRange{Float64, Int64}} at index [2]
我知道我應該“降級”,但我該怎么做呢?例如,x[1,1]總是嘗試輸出整個 LinRange。
uj5u.com熱心網友回復:
采用:
collect(x)
要么
vcat(x)
要么
[x;]
然而,問題是你為什么需要一個Vector. 除非您需要對其進行變異,否則使用LinRange.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456439.html
