返回信息流是关于兴趣驱动模型的仿真,是同学给的(毕业了找不到人鸟),里面几个常量初值可以适当调整
下面是源代码,循环总是出错啊(最后一个end也很诡异)
最后的图是调试正常的结果~~
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
T=1440;a=0;alfa=1;
p=0.8;%社会认同度
total_t=2000;
events=zeros(1,T);%创建1行T列的零矩阵
t_step=1;
rand_num=0;
rand_num2=0;
possibility=1;%兴趣指标
temp=1;
for i=1:total_t
rand_num2=rand(1);%产生1*1的0到1之间均匀分布的随机数
if rand_num2<p
possibility=temp*a/(a+alfa*t_step);
temp=temp*(1-a/(a+alfa*t_step));
else
possibility=temp*1/(1+alfa*t_step);
temp=temp*(1-1/(1+alfa*t_step));
end
if t_step>=T
possibility=1;
end
rand_num=rand(1);
if rand_num<=possibility
events(t_step)=events(t_step)+1;
t_step=1;
possibility=1;
temp=1;
else
t_step=t_step+1;
end
end;
events=events/sum(events(:));
loglog(events,'*');hold on;
k_nonzero=1;
for i=1:T-1
if events(i)~=0 && events(i+1)==0
k_nonzero=i;
break;
end
end;
polyn=polyfit(log10(1:k_nonzero),log10(events(1:k_nonzero)),1);
% polyfit用于多项式曲线拟合;
k=polyn(1);%/polyn(2)
X=log10(1:k_nonzero);
Y=polyn(1)*X+polyn(2);
Y=10.^Y;
loglog(10.^X,Y,'r-','linewidth',2.5);hold on;%双对数坐标曲线
title(['Slope = ',num2str(k)]);hold on;
xlabel('\tau/minute');
ylabel('P(\tau)');
legend('data','fitting');
end;
这是一条镜像帖。来源:北邮人论坛 / matlab / #9742同步于 2013/3/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Matlab机器人发帖
求大神帮忙看一段代码啊~循环老是出问题啊~
walking
2013/3/29镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
看不懂,LZ解释一下到底要实现什么功能吧。
【 在 walking 的大作中提到: 】
: 是关于兴趣驱动模型的仿真,是同学给的(毕业了找不到人鸟),里面几个常量初值可以适当调整
: 下面是源代码,循环总是出错啊(最后一个end也很诡异)
: 最后的图是调试正常的结果~~
: ...................
我找过作者要了源代码
结果一看,代码都没改,只是第一行加了一句:
function model()
你试试~~
【 在 z2642x 的大作中提到: 】
: 不知道是什么算法...改了几次参数 不能得到正常结果 说一下具体算法吧...我觉得是算法写的有错误..