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

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

 采纳的回答

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 个评论

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
You should give completely new questions their own thread really rather than tagging them onto a comment of an answer.

请先登录,再进行评论。

更多回答(1 个)

You have your sub function "coord" defined inside your for loop. Move it outside your for loop.

2 个评论

also if that is a script you need to turn the whole thing into a function in order to define subfunctions.
but i want to take X,Y as input if i put it in the starting will it take X,Y as input ??

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Programming 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by