Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2008-08-12
年龄: 42
帖子: 2
声望力: 0 ![]() |
![]()
n=20;
time=70; s=unifrnd(0,1,n,n); s=round(s); s(1:n,1:n)=0; ran=1/4*rand(n); ran1=rand(n); ran2(1:n,1:n)=0.01; t=1; st{t}=s; s; s00=s; for t=1:time %r1=1./(1+exp(-k*t)); x1=random('norm',0.5,0.25,n,n); r1=1./(1+exp(-x1)); p=random('norm',0.5,0.5,n,n); r2=1./(1+exp(-p*t)); x3=0.5; r3=1./(1+exp(x3)); sum12=0; for i=1:n for j=1:n if st{t}(i,j)==1; sum12=sum12+1; else sum12=sum12; end end end g=0.5; x4=g*(sum12/(n*n)); r4=x4*(1-x4)+0.75; x5=0.5; r5=1./(1+exp(-x5)); for i=1:n for j=1:n s0=st{t}; s00=st{t}; R=r1*r2*r3*r4*r5(i,j); if R(i,j)>ran(i,j)&ran1(i,j)>ran2(i,j); st{t+1}(i,j)=1; else st{t+1}(i,j)=st{t}(i,j); end end end st{t+1}; end for t=1:time y1(t)=sum2(st{t},n); end y1 t=1:time; plot(t,y1) title('产业集群技术创新') xlabel('模拟次数');ylabel('集群中进行技术创新的企业总数') %------------------------------------------------------------ function y1=sum2(s,n) y1=0; for i=1:n; for j=1:n if s(i,j)==1 y1=y1+1; end end end 在 matlab 6.5 运行 主程序的时候 出现??? Index exceeds matrix dimensions. 这个错误, 恳请大家帮我看看,多谢大家了 对上面的程序,我一步一步运行了,在下面这个循环中,运行到这个循环时出现了 ??? Index exceeds matrix dimensions.提示,但我还是不知道哪错了,也不知道怎么改,麻烦帮我看看好吗,多谢了 。我是初学 matlab,恳请指教 for i=1:n for j=1:n s0=st{t}; s00=st{t}; R=r1*r2*r3*r4*r5(i,j); if R(i,j)>ran(i,j)&ran1(i,j)>ran2(i,j); st{t+1}(i,j)=1; else st{t+1}(i,j)=st{t}(i,j); end end end st{t+1}; end |
![]() |
![]() |
![]() |
#2 |
高级会员
注册日期: 2007-12-02
年龄: 44
帖子: 303
声望力: 31 ![]() ![]() ![]() ![]() |
![]()
st{t} 是个什么,矩阵 ?
|
![]() |
![]() |