帮忙看一下这个malab程序
%预设初始值for i=1:30
v(i,1)=10;%个体拥有的高知识水平值为10
end
w=rand(1,570);
for i=31:600
for j=1:570
v(i,1)=w(j);
end
end
%比较t时刻的知识水平,得到t时刻的个体知识水平,并求出t时刻的平均知识水平,画出它与t的关系图,这里个体p是知识溢出者,q是知识接受者。
h=[];s=[];
A=0.1,a=0.4,b=0.6,c=0.001;
for t=1:9000
for p=1:600
for q=1:600
if v(p,t)>v(q,t)
dv(q,t+1)=A*v(q,t)^a*(v(p,t)-v(q,t))^b;
v(q,t+1)=v(q,t)+dv(q,t+1);
else
dv(j,t+1)=0;
v(q,t+1)=v(q,t)+dv(q,t+1);
end
h(t)=v(q,t+1);%空的数组h(t)用来存储t时刻个体知识水平,供下面画图用。
end
end
s(t)=h(t);
end
plot(t,s(t))
知识水平的累加部分没表示出来,因为不知道怎么去表示,希望大家帮帮我
回复 楼主 若然 的帖子
LZ的程式不像matlab倒很像fortrn! 真的很难看懂别人的logical! 仅就前面一部分说说!for i=31:600, for j=1:570, v(i,1)=w(j); end; end 里头的回圈根本有问题而且多馀!? 原来的相当於 for i=31:600, v(i,1)=w(570); end 或 v=;
凭直觉猜测LZ前面v的赋值是否是要如下式!
w=rand(1,570); v=;
回复 沙发 ChaChing 的帖子
ChaChing,谢谢你的回复,这样看是不知道我的程序的逻辑是什么,我的qq是185741237,你如果有空的话,不知道可不可以在qq上问你,这样有些问题比较好说清楚。你给我指出的问题,我修改一下看看。帮忙看一下这个循环体程序
%预设初始值w=rand(1,570);
v=;
%下面是比较t时刻的知识水平,得到t时刻的个体知识水平,并求出t时刻的平均知识水平,画出它与t的关系图.假设
t时刻个体i是知识溢出者,j是知识接受者
h=[];s=[];
A=0.1,a=0.4,b=0.6,c=0.001;
for t=1:9000
for i=1:600
for j=1:600
if v(i,t)>v(j,t)
dv(j,t+1)=A*v(j,t)^a*(v(i,t)-v(j,t))^b;
v(j,t+1)=v(j,t)+dv(j,t+1);
else
dv(j,t+1)=0;
v(j,t+1)=v(j,t)+dv(j,t+1);
end
h(t)=v(j,t+1);%空的数组h(t)用来存储t时刻个体知识水平,供下面画图用。
end
end
end
页:
[1]