下面的MATLAB程序有啥问题啊~~为什么运行不了~~急啊。好心人求解

clear;Vmax=input('请输入最大速度(km/h):');n=input('请输入车道元胞数:');t=input('请输入运行次数:');p1=input(... clear;
Vmax=input('请输入最大速度(km/h):');
n=input('请输入车道元胞数:');
t=input('请输入运行次数:');
p1=input('请输入随机减速概率:');
p2=input('请输入初始元胞有车的概率:');
num=0;
X=[];V=[];
z=zeros(1,n);
cells=z;cellsNew=z;
for j=1:n/2;
if (rand(1,1)<p2);cells(1,j)=1;end;
end;
for k=1:t;
for i=1:n/2;
if (cells(1,i)==1);num=num+1;X(num)=i;V(num)=round(5*rand(1,1));end;
end;
for m=1:(num-1);
if{V(m)>=[X(m+1)-X(m)-1]};V(m)=X(m+1)-X(m)-1;
else if(V(m)<Vmax);V(m)=V(m)+1;
else if (rand(1,1)<p1);V(m)=Vmax-1;else V(m)=Vmax;end;end;end;
X(m)=X(m)+V(m);cellsNew(1,X(m))=1;
end;
if (V(num)==Vmax);
if (rand(1,1)<p1);V(num)=V(num)-1;else V(num)=Vmax;end;
else V(num)=V(num)+1;end;
X(num)=X(num)+V(num);
cellsNew(1,X(num))=1;
cells=cellsNew;
end;
fprintf('最后的元胞状态为:');disp(cells);
展开
 我来答
匿名用户
推荐于2016-11-02
展开全部
你的这个程序问题不少,首先n的数值不能随便输入,如果n=3,那么下面for i=1:n/2就是1:1.5所以必须用取整函数ceil(n/2)或round(n/2)。后面num不能取初值为零,否则for m=1:(num-1)会出现V(m)下标为-1的情况。再有,你的t变量似乎没用到,因为没有储存t的空间,不管计算多少次,所现结果都是最后一次。主要的问题还是出现在下标的处理上。最好还是问你的指导教师吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式