I need x,y coordinates which are randomly generated between 1 to 400 for x coordinates and 1 to 100 for y coordinates, condition is minimum distance between coordinates is 10 and maximum distance is 20, distances should vary from 10 to 20? plz help
    3 views (last 30 days)
  
       Show older comments
    
    M.Prasanna kumar
 on 7 Jan 2019
  
    
    
    
    
    Commented: M.Prasanna kumar
 on 7 Jan 2019
            clear all;
close all;
pointsToPlace = 30 ;    % # of random coordinates we need to place
% Preallocate points
x = zeros(1, pointsToPlace);
y = zeros(1, pointsToPlace);
loopCounter = 1;
maxIterations = 200000; % Number of tries before giving up.
numberPlaced = 0; % No points placed yet.
while numberPlaced < pointsToPlace && loopCounter < maxIterations
	% Get new coordinate
	xProposed = round((10 + (50-1)*rand()),0);   %% random X- coordinates
	yProposed = round((10 + (50-1)*rand()),0);   %% random Y- coordinates
	if loopCounter == 1
		% First one automatically gets added of course.
		numberPlaced = 1;
		x(numberPlaced) = xProposed;
		y(numberPlaced) = yProposed;
	else
		% Compute distance to all prior coordinates.
		distances = sqrt((xProposed-x(1:numberPlaced)).^2 +(yProposed-y(1:numberPlaced)).^2);
		% If less than 20, add it
		if min(distances > 8)
			numberPlaced = numberPlaced + 1;
			x(numberPlaced) = xProposed;
			y(numberPlaced) = yProposed;
		end
	end
	loopCounter = loopCounter + 1;
end
above code (not my code) generates coordinates at equal distances, in my case distances should vary 
0 Comments
Accepted Answer
  Walter Roberson
      
      
 on 7 Jan 2019
        change
if min(distances > 8)
to
    mind = min(distances);
    if mind >= 10 && mind <= 20
More Answers (0)
See Also
Categories
				Find more on Operating on Diagonal Matrices in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!