Info
This question is closed. Reopen it to edit or answer.
when we run the code, a plot comes out and if i want to calculate the X and y coordinate of center of each grid box , how to do that ?
1 view (last 30 days)
Show older comments
xyRange=[1,5]; %// Starting xy range of particles
P=3; %// Number of particles generated each day
vx=0.6; vy=0.4;%// x and y velocity
al=35;at=5;t=1;
X=[]; Y=[]; %// Vectors start out empty
for day=1:5
%// Generate 3 particles and add to end of vectors X and Y
X=[X;randi(xyRange,P,1)];
Y=[Y;randi(xyRange,P,1)];
%// Move all the particles
X=X+vx+randi([-6,6],1,1)*sqrt(2*al*vx*t)+randi([-6,6],1,1)*sqrt(2*at*vy*t);
Y=Y+vy+randi([-6,6],1,1)*sqrt(2*al*vy*t)+randi([-6,6],1,1)*sqrt(2*at*vx*t);
end
plot(X,Y,'kd');grid on;
xGridMarkers = str2double(get(gca,'XTicklabel'));
yGridMarkers = str2double(get(gca,'YTickLabel'));
numXSquares = length(xGridMarkers) - 1;
numYSquares = length(yGridMarkers) - 1;
squareHitCount = zeros(numYSquares, numXSquares);
for k=1:size(X,1)
x = X(k);
y = Y(k);
ySqrIdx = numYSquares - (find(yGridMarkers>y,1) - 1) + 1;
xSqrIdx = find(xGridMarkers>x,1) - 1;
squareHitCount(ySqrIdx, xSqrIdx) = squareHitCount(ySqrIdx, xSqrIdx) + 1;
end
1 Comment
RahulTandon
on 8 Jul 2015
use the ginput function read about it in the help roughly 1) get the plot in place 2) call ginput 3) click on every point that you are interested in 4) finish by pressing enter 5) you will get an array of points in your workspace and in the command window TRY IT!
Answers (0)
This question is closed.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!