数学建模社区-数学中国

标题: 小白求大神解答报错啊 [打印本页]

作者: azimao    时间: 2018-4-14 22:35
标题: 小白求大神解答报错啊
这是代码:
function boid1(n,eta)
  %generates  boids in a field
  n=input( 'input n ') ;eta=input(' input eta' );
  range=0.2;
  speed =0.03;
  TIME= 300;
  density=10;
  RUNS= 1;

  fieldsize= sqrt (n/density) ;
  pos =  fieldsize*rand(n,2) ;
  heading= 2*pi*rand(n,1) ;
  relposX= zeros (n) ;
  relposY=  zeros (n) ;
  neighbours  = zeros (n) ;
  RelHead= zeros (n,1) ;
  B = zeros(n,1) ;
  newHeading = zeros (n,1) ;
  newPos = zeros(n,2);
  meanHeading = zeros (TIME,1) ;
  deviationMean =  zeros (n,TIME) ;
  for run=1:RUNS
  for time=1:TIME
  for i=1:n
  for j=1:n
  relposX(i,j)= abs(pos(i,1)-pos(j,1));
  relposY(i,j)= abs(pos(i,2)-pos(j,2));
  if(sqrt(relposX(i,j)^2 + relposY(i,j)^2) <= range)
  neighbours (i,j)=1;
  end
  end
  end
  for i=1:n
  for j=1:n
  if (neighbours (i,j)==1)
  relheading (i,j)= heading(j,1)-heading (i,1) ;
  end
  end
  end
  RelHead= sum (relheading,2) ;
  for i=1:n
  while RelHead(i,1) <-pi
  RelHead(i,1)= RelHead(i,1) + pi;
  end
  while RelHead(i,1) > pi
  RelHead(i,1)= RelHead(i,1)-pi;
  end
  end

  noise = (rand(n,1)*eta)-eta/2;
  newHeading(:,1)= heading(:,1) + RelHead(:,l)./sum(neighbours,2)+noise(:,1);
  newPos(:,1)= pos(:,1) + cos(newHeading(:,l))*speed;
  newPos(:,2)= pos(:,2) + sin(newHeading(:,1) )*speed;
  for k=1:n
  while newPos(k,1) < 0
  newPos(k,1)= newPos(k,1) + fieldsize;
  end
  while newPos(k,1) >= fieldsize
  newPos(k,1)= newPos(k,1)- fieldsize;
  end
  while newPos(k,2) < 0
  newPos(k,2)= newPos(k,2) + fieldsize;
  end
  while newPos(k,2) >= fieldsize
  newPos(k,2) = newPos(k,2)-fieldsize;  
  end
  end
  heading=newHeading;
  pos = newPos;
  meanHeading(time,1)= mean(heading,1);
  deviationMean(time,1) = mean(abs(meanHeading(time,l)-heading( :,1))) ;
  scatter(pos(:,1),pos(:,2),'xr');
  axis([0 fieldsize 0 fieldsize] ); xlabel(time );
  M(time) = getframe;
  end
  runDev(:,run)= deviationMean(:,1);
  end
  %plot (runDev)
  movie2avi(M,'boidtest.avi','quality',100)


未定义函数或变量 'l'。

出错 A0 (line 51)
  newHeading(:,1)= heading(:,1) + RelHead(:,l)./sum(neighbours,2)+noise(:,1);







欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5