creating two pairs of data which are apart by a certain distance
    6 visualizzazioni (ultimi 30 giorni)
  
       Mostra commenti meno recenti
    
Any idea as to how to create two sets of coordinates whose eucleadian distance from every other coordinate is greater than a certain threshold.
In other words i want to get coordinates which dont have any neighbours within a certain radius
Any suggestions?
0 Commenti
Risposta accettata
  Stefan
      
 il 8 Mag 2012
        use epsilon-nearest neighbors algorithm.
or simple: if your data have the coordinates x and y and TH = tour predefied threshold then calculate:
for i=1:length(x)
 d=sqrt((x-x(i)).^2 +(y-y(i)).^2);
 if d<=TH
    datax(i)=x(i);
    datay(i)=y(i);
  else
    outlyerx(i)=x(i);
    outlzery(i)=y(i);
  end
end
datax(datax==0)=[];
datay(datay==0)=[];
outlyerx(outlyerx==0)=[];
outlyery(outlyery==0)=[];
2 Commenti
  Stefan
      
 il 8 Mag 2012
				this code will seperate one data set in 2 other with either at least one neighbor or none neighbor is in it's radius==TH 
if you want to create 2 data sets than jan simons solution is the best way!
Più risposte (2)
  Jan
      
      
 il 8 Mag 2012
        Please post more details. Currently this is the most simply solution:
% First set of points:
range = 100;
X = rand(100, 3) * range;
% Second set, all point must have distance > 5
distance = 5;
Y = X + (range + distance);
0 Commenti
Vedere anche
Categorie
				Scopri di più su Random Number Generation in Help Center e File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!