24小时热门版块排行榜    

查看: 513  |  回复: 1

Mr123456

铁虫 (初入文坛)

[求助] 求助啊。用matlab画条曲线

http://muchong.com/bbs/viewthread.php?tid=4174000&fpage=1
上面是题目,关于二维随机行走的。现在想再画条关于  步数和平均距离的曲线,看看它们存在什么关系?
求高手帮忙写下程序。拜托了。

[ Last edited by Mr123456 on 2012-3-26 at 15:38 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
Mr123456: 金币+10, ★★★★★最佳答案 2012-03-27 20:58:45
CODE:
function randwalk
tic
nn=0;
N=500:500:10000;
for j=N
    ra=0;
for i=1:30
    ra=ra+walk(i,j);
end
nn=nn+1;
mr(nn)=ra/30;%10次运行平均值
end
plot(N,mr,'ro')
toc
function rr=walk(x,n)
clc;close all;
z=0; % 设置初始数值,这里利用一个复数来表示位置
rand('state',x); % 初始化随机数的状态
%ph=plot(z);hold on; % 绘图
T=1; % 计算时间的参数
z1=1; % 位置的中间变量
ti=title('time = 0','Fontsize',14,'Fontname','Times new roman'); % 在图题处实时显示时间
while T     [dx,dy]=choose_D(0.25,0.25,0.25,0.25); % 随机生成一个位移量
    z1=z+[dx+i*dy]; % 更新位置数值
   % plot(real([z,z1]),imag([z,z1])); % 连接t时刻和t+1时刻两点绘制线段
    z=z1; % 更新z的数值
   % set(ti,'String',['time = ',num2str(T)]); % 更新图题处的时间数值
    T=T+1; % 时间值更新
    %pause(0.01); % 暂停一下,显示动画效果
end
rr=abs(z);
function [dx,dy]=choose_D(p1,p2,p3,p4);
% p1=0.2; % 向左运动的几率
% p2=0.3; % 向上运动的几率
% p3=0.1; % 向右运动的几率
% p4=0.4; % 向下运动的几率
r=rand; % 产生一个随机数
if r     dx=-1; % x方向的随机移动量
    dy=0; % y方向的随机移动量
elseif r     dx=0; % x方向的随机移动量
    dy=-1; % y方向的随机移动量
elseif r     dx=1; % x方向的随机移动量
    dy=0; % y方向的随机移动量
else
    dx=0; % x方向的随机移动量
    dy=1; % y方向的随机移动量
end

这个其实很简单,你只要稍微动下脑经就行了。


The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
2楼2012-03-27 09:52:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Mr123456 的主题更新
信息提示
请填处理意见