【问题标题】:MATLAB: plotting a random walkMATLAB:绘制随机游走
【发布时间】:2015-06-16 19:47:10
【问题描述】:

所以我需要创建一个函数,为进行连续随机跳跃的个人绘制位置与时间的关系。每次跳跃以概率 R 向右移动一个单位,否则向左移动一个单位。参数必须是 R = 可能是向右跳一个单位; a = 初始位置;和 numjumps = 个人进行的跳跃次数。我还需要使用binornd() 函数。

到目前为止,我编写的代码是:

function plot_sim(a,numjumps,R)
loc = a;
time = 0;
for i = 1:numjumps;
    loc = loc + (2*binornd(1,R)-1);
    time = time + 1;
    hold on;
    plot(time,loc,'-')
end

我必须用plot_sim(0,25,0.5) 评估它。而且我很困惑,因为即使我有plot(time,loc,'-'),它也不会绘制为连接线,它只是绘制为单独的点。我尝试在 for 循环之外包含 plot 函数,但这不起作用。我什至尝试过更改点的颜色,但这甚至都行不通。我是不是写错了?

【问题讨论】:

  • 问题是您一次绘制一个点。查看 plot 的文档以了解如何绘制线条。
  • @A.Donda 我一直在努力让它工作 3 天,但我查找的任何内容都无济于事,所以我不知道还能用它做什么
  • 为了绘制一条线,您必须以向量的形式为绘图命令提供多个点介于 应该是该线的位置。看看plot 中的第一个示例,并尝试了解它与您正在做的事情之间的区别。

标签: matlab random plot matlab-figure random-walk


【解决方案1】:

您的问题的解决方案非常简单。绘制线条时,您需要至少有两个点,这样才能绘制线条。你真正需要做的是记住之前的位置,这样在每个时间步,你都可以从之前的位置画一条线到现在的位置。

我要做的是首先生成一个生成一个跳跃的图形,我们可以从初始位置画一条线到这一点。之后,然后运行您的循环,我们跟踪上一个事件,在下一个时间步生成您的新事件,然后从上一个时间的上一个事件到当前时间的当前事件画一条线。

请记住,时间在横轴上,位置在纵轴上。因此,事件被保存为一个双元素向量,其中第一个元素是时间,第二个元素是位置。

因此,请尝试这样做:

function plot_sim(a,numjumps,R)
%// Keep the previous event
%// x coordinate is time
%// y coordinate is position
%// Time = 0
prev_loc = [0 a];

%// Generate the next event
%// Time = 1
loc = [1 prev_loc(2) + 2*binornd(1,R)-1];

%// Close all figures then open up a new one
close all;
figure;
hold on;

%// Plot a line from the previous position to the current one
plot([prev_loc(1) loc(1)], [prev_loc(2) loc(2)]);

%// For each new position...
for i = 2:numjumps
    %// Remember the previous position
    prev_loc = loc;
    %// Generate the next position
    loc = [i prev_loc(2) + (2*binornd(1,R)-1)];    
    %// Plot the position
    plot([prev_loc(1) loc(1)], [prev_loc(2) loc(2)]);
end

这是我尝试使用plot_sim(0.25,10,0.25) 运行它时得到的结果,所以a = 0.25, numjumps = 10, R = 0.25

请记住,您可能不会得到与我相同的情节,因为它是随机的。每次你运行这个函数时,你应该得到一个不同的随机游走,这就是我们所期望的。

【讨论】:

    猜你喜欢
    • 2021-10-21
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-26
    • 1970-01-01
    相关资源
    最近更新 更多