24小时热门版块排行榜    

查看: 883  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

身心天地

铁杆木虫 (正式写手)

[求助] 索引超出矩阵维度,for循环i值的设置

t=(1:1:200)
counter=zeros(1,200);
x(1)=0;
y(1)=0;
z(1)=0;
x(2)=0;
y(2)=0;
z(2)=0.01;
n=0;
m=0;
while(n<100000)
s=0;
h=0;
for i=3:1:80
l=(-333)*log(rand(1));
b=acos(2*rand(1)-1);
e=2*pi*rand(1);
x(i)=x(i-1)+l*sin(b)*sin(e);
y(i)=y(i-1)+l*sin(b)*cos(e);
z(i)=z(i-1)+l*cos(b);
a=z(i)-z(i-1);
s=s+a;
h=h+l;
m=m+1
n;
if(s)>900
x(i);
y(i)
m;
break
end
end
t=round(abs(h)/60);
if abs(x(i))<25000
if abs(y(i))<25000
counter(t)=counter(t)+1;
p=x(i);
q=y(i)
end
end
n=n+1;
end
plot(t, counter(t));
代码如上,问题:就是这个for循环里面的i设置for i=3:1:80,我设置i等于不超过五十左右时,这个程序跑的通,当超过这个数值时就跳出索引超出矩阵维度。求解决,新手摸索两个月了,感激不尽,做不完,都没法回家过年了,唉,跪谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ofwhy

至尊木虫 (著名写手)


jjdg: 金币+1, 感谢参与 2019-01-29 00:20:23
t是一个数组,代入counter会超出维度的。应该取t(i)代入吧。

发自小木虫Android客户端
3楼2019-01-28 08:23:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

环子wang

木虫 (著名写手)

2楼2019-01-26 21:05:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

身心天地

铁杆木虫 (正式写手)

引用回帖:
3楼: Originally posted by ofwhy at 2019-01-28 08:23:25
t是一个数组,代入counter会超出维度的。应该取t(i)代入吧。

谢谢您
4楼2019-01-28 21:02:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见