how do i remove this error? Function definitions are not permitted in this context.

1 次查看(过去 30 天)
xyRange=[1,5]; %// Starting xy range of particles
numP=3; %// Number of particles generated each day
vx=0.6; vy=0.4; %// x and y velocity
X=[]; Y=[]; %// Vectors start out empty
for day=1:10
%// Generate 3 particles and add to end of vectors X and Y
X=[X;randi(xyRange,numP,1)];
Y=[Y;randi(xyRange,numP,1)];
%// Move all the particles
X=X+vx;
Y=Y+vy;
end
plot(X,Y,'kd');
grid on ;
axis([1,50,1,50]);
function [box] = coord(X,Y)
for j = floor(X/5)+1;
k = floor(Y/5);
box = k*10+j;
end
end

采纳的回答

Thorsten
Thorsten 2015-6-29
You can write it w/o a function, and you don't need the inner for j= ... loop:
for day=1:10
%// Generate 3 particles and add to end of vectors X and Y
X=[X;randi(xyRange,numP,1)];
Y=[Y;randi(xyRange,numP,1)];
%// Move all the particles
X=X+vx;
Y=Y+vy;
end
plot(X,Y,'kd');
grid on ;
axis([1,50,1,50]);
j = floor(X/5)+1;
k = floor(Y/5);
box = k*10+j;
end
  2 个评论
sneha kriplani
sneha kriplani 2015-6-29
hey thanks for ur answer, it helped me sorting out that problem but i was just wondering if u can help me ahead of it also. if u will run this code then it will plot number of particles now i want to count number of particles in each grid box will give u which particle is in which grid but how to add number of particles in each gridbox ??? Thanks in advance
Adam
Adam 2015-6-29
You should give completely new questions their own thread really rather than tagging them onto a comment of an answer.

请先登录,再进行评论。

更多回答(1 个)

James Tursa
James Tursa 2015-6-29
You have your sub function "coord" defined inside your for loop. Move it outside your for loop.

类别

Help CenterFile Exchange 中查找有关 Mathematics 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by