声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1459|回复: 7

[编程技巧] 出现Index exceeds matrix dimensions错误

[复制链接]
发表于 2008-8-12 02:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
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. 这个错误,恳请大家帮我看看,多谢大家了

[ 本帖最后由 ChaChing 于 2009-12-26 23:21 编辑 ]
回复
分享到:

使用道具 举报

发表于 2008-8-12 09:26 | 显示全部楼层
首先,你要知道,在哪一步出现了问题
然后,看循环的值有没有超过数组的大小
 楼主| 发表于 2008-8-12 09:43 | 显示全部楼层

回复 沙发 sigma665 的帖子

谢谢指教! 非常感谢! 请问怎么知道在哪一步出现了问题呢,还请再指教,多谢了
发表于 2008-8-12 10:39 | 显示全部楼层
一行一行Command输入, 就知道那一行出问题了
matlab的好处之一就是其为直译式编辑
自己试试看吧
发表于 2008-8-12 12:08 | 显示全部楼层

回复 地板 ChaChing 的帖子

一步一步运行
 楼主| 发表于 2008-8-12 16:45 | 显示全部楼层

回复 5楼 sigma665 的帖子

谢谢帮忙! 我一步一步运行了,在这个循环中,运行到这个循环时出现了 ??? 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
发表于 2008-8-12 17:52 | 显示全部楼层
r5(i,j);

前面r5是一个数,这里变成矩阵了
 楼主| 发表于 2008-8-12 21:38 | 显示全部楼层

回复 7楼 sigma665 的帖子

这下好了!太感谢你了, 非常感谢 !太感谢了!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 05:29 , Processed in 0.049115 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表