how do i remove this error? Function definitions are not permitted in this context.
1 view (last 30 days)
Show older comments
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
0 Comments
Accepted Answer
Thorsten
on 29 Jun 2015
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 Comments
Adam
on 29 Jun 2015
You should give completely new questions their own thread really rather than tagging them onto a comment of an answer.
More Answers (1)
James Tursa
on 29 Jun 2015
You have your sub function "coord" defined inside your for loop. Move it outside your for loop.
2 Comments
Adam
on 29 Jun 2015
also if that is a script you need to turn the whole thing into a function in order to define subfunctions.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!