matlab网格出错 无效,一段matlab代码,不知是哪里错了,求大神相助(网格计算)...

M=repmat(1/800,21,41);

a=zeros(20,2);

b=zeros(20,2);

c=zeros(20,2);

d=zeros(20,2);

Ma=zeros(21,41);

t=1/800;

for q=1:1:2

i=4;

j=0;

a(1,:)=[i j]; %将初始化的第一个点存入a数组

p=0;

while i~=7||j~=20 %循环的截至条件为蚂蚁(i,j )到达第六个点,即我们假设的出

%………………………………………………………………………………………………………………………………………………

D=zeros(1); %产生一个随机数D,该数有计算机按照信息素所产生的概率进行概率性产

x=rand(1); %且D的取值为0,90,180,代表着处于(i,j )坐标点的第一只蚂蚁下一步走向,其中假设1,2,3点不可以向下走

D(find(x

D(find(x>=M(i+1,j)/(M(i+1,j)+M(i,j+1)+M(i-1,j))))=90; %其中0代表蚂蚁向右拐,90代表向上拐,180代表左拐

D(find(x>=(M(i,j+1)+M(i+1,j))/(M(i+1,j)+M(i,j+1)+M(i-1,j))))=180;

%……………………………………………………………………………………………………………………………………………………

if D==0

p=p+1;

a(p+1,:)=[i+1 j]; %蚂蚁向左转一次,得到第二个网络节点

i=i+1; %此段即是说明蚂蚁的转向,其中p为记录蚂蚁经过的网格线数目,a数组记录其经过的网格点坐标

elseif D==90

p=p+1;

a(p+1,:)=[i j+1];

j=j+1;

else

p=p+1;

a(p+1,:)=[i-1 j];

i=i-1;

end

end

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值