julia - 在 Julia 中可视化一维随机游走
问题描述
我想知道如何绘制每个“步行”100 步的 1000 个“步行者”。
我不知道如何用不止一个步行者绘制图表,更不用说每走 100 步有 1000 个。
下面是一个“步行者”步行 10 步的代码。
function walk(N, init::Int=0)
trace = Int[init]
for t in 1:N
if randn() > 0
push!(trace, trace[end] + 1)
else
push!(trace, trace[end] - 1)
end
end
trace
end
walk(10)
[0, 1, 0, 1, 0, -1, 0, 1, 2, 3, 2]
解决方案
有很多方法可以做到这一点。我会这样做(这不是最有效的方法,但我发现它很容易编写):
using Plots
init = 0
walkers = 1000
walk_length = 100
walks = cumsum(vcat(fill(init, 1, walkers), # initial state
rand([-1, 1], walk_length, walkers)), # vertically append move direction
dims=1) # cumulative sum over the first dimension to get one walk per column
plot(walks, legend=nothing)
在代码walks
中是Matrix
将每次行走存储在一列中(因此在您的情况下,它有 101 行和 1000 列)
推荐阅读
- ios - 为什么通过 Spotlight 打开时 NSUserActivity contentAttributeSet 为零?
- python - 在不等待加入的情况下杀死一个线程
- java - Azure cosmosdb Async java中的理想“RequestOptions”值?
- c# - 表单提交失败后发回敏感信息的安全问题
- cmake - CMAKE_INSTALL_RPATH_USE_LINK_PATH 没有任何影响
- wordpress - Wordpress:将所有帖子(项目)重定向到特定页面
- java - 使用 Java 将 Oracle Blob 内容插入另一条记录时出现问题
- javascript - 是否可以更改语义-ui-dropdown 上的“添加”文本?
- angular - ng-bootstrap popover 增加页面宽度
- c++ - c++ 使用 c 样式数组聚合初始化