用DifferentialEquations解微分方程,然后用DataFrames把的结果列出来的时候没有timestamp的列是为什么有大佬知道吗,
http://docs.juliadiffeq.org/latest/features/io.html
把教程里的两个例子复制进去跑了下,第一个结果和教程一样,但是第二个就没有timestamp的列,结果还是按行现实的,不是竖着两列。
可能是bug,我写个小函数,你可以将就用一下。
julia> function toDataFrame(sol::DiffEqBase.DESolution)
if DiffEqBase.has_syms(sol.prob.f)
return DataFrame([sol.t, [[u[i] for u in sol.u] for i in eachindex(first(sol.u))]...], [:timestamp, sol.prob.f.syms...])
else
return DataFrame(sol)
end
end
toDataFrame (generic function with 1 method)
julia> toDataFrame(sol1)
17×5 DataFrame
│ Row │ timestamp │ value1 │ value2 │ value3 │ value4 │
│ │ Float64 │ Float64 │ Float64 │ Float64 │ Float64 │
├─────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 1 │ 0.0 │ 0.585821 │ 0.607552 │ 0.623866 │ 0.649416 │
│ 2 │ 0.0625 │ 0.622801 │ 0.645903 │ 0.663247 │ 0.69041 │
│ 3 │ 0.125 │ 0.662116 │ 0.686676 │ 0.705115 │ 0.733992 │
│ 4 │ 0.1875 │ 0.703912 │ 0.730022 │ 0.749625 │ 0.780325 │
│ 5 │ 0.25 │ 0.748346 │ 0.776105 │ 0.796945 │ 0.829583 │
│ 6 │ 0.3125 │ 0.795586 │ 0.825097 │ 0.847253 │ 0.881951 │
│ 7 │ 0.375 │ 0.845807 │ 0.877181 │ 0.900735 │ 0.937624 │
│ 8 │ 0.4375 │ 0.899198 │ 0.932553 │ 0.957594 │ 0.996811 │
│ 9 │ 0.5 │ 0.95596 │ 0.99142 │ 1.01804 │ 1.05974 │
│ 10 │ 0.5625 │ 1.01631 │ 1.054 │ 1.08231 │ 1.12663 │
│ 11 │ 0.625 │ 1.08046 │ 1.12054 │ 1.15063 │ 1.19775 │
│ 12 │ 0.6875 │ 1.14866 │ 1.19127 │ 1.22326 │ 1.27336 │
│ 13 │ 0.75 │ 1.22117 │ 1.26647 │ 1.30048 │ 1.35374 │
│ 14 │ 0.8125 │ 1.29826 │ 1.34642 │ 1.38257 │ 1.43919 │
│ 15 │ 0.875 │ 1.38021 │ 1.43141 │ 1.46985 │ 1.53004 │
│ 16 │ 0.9375 │ 1.46734 │ 1.52177 │ 1.56263 │ 1.62663 │
│ 17 │ 1.0 │ 1.55996 │ 1.61783 │ 1.66127 │ 1.72931 │
julia> toDataFrame(sol2)
7×3 DataFrame
│ Row │ timestamp │ x │ y │
│ │ Float64 │ Float64 │ Float64 │
├─────┼────────────┼─────────┼──────────┤
│ 1 │ 0.0 │ 1.0 │ 1.0 │
│ 2 │ 0.0776085 │ 1.04549 │ 0.857668 │
│ 3 │ 0.232645 │ 1.17587 │ 0.63946 │
│ 4 │ 0.429118 │ 1.41968 │ 0.456996 │
│ 5 │ 0.679082 │ 1.87672 │ 0.324733 │
│ 6 │ 0.944406 │ 2.58825 │ 0.263362 │
│ 7 │ 1.0 │ 2.77285 │ 0.25871 │
1 个赞