Calculate radius from scatter plot
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi,
I need to calculate the radius of a circle, ignoring all surrounding particles (image attached). The circle itself consists of many particles (over 100,000). Note that the center of the circle is not at the origin.
Thanks.
EDIT: here is how I solved it:
posn=normal(poscm); %poscm is the coordinates matrix
[k,edges]=histcounts(posn,1e5);
[~,imaxk]=max(k);
R=edges(imaxk+find(k(imaxk:end)==0,1)); %find the first zero value after the maximum
5 comentarios
Adam Danz
el 23 de Jun. de 2020
If you're still looking for a solution, attach the fig file containing the data, or attach a mat file containing the (x,y) coordinates.
Respuestas (3)
Matt J
el 22 de Jun. de 2020
You could try using clusterdata to find the big concentration of points. Then minboundcircle from the File Exchange to get the radius,
darova
el 23 de Jun. de 2020
Try density function hist3
r = rand(500,1)/5;
t = rand(500,1)*2*pi;
x = [rand(50,1); r.*cos(t)+0.5];
y = [rand(50,1); r.*sin(t)+0.5];
n = 20;
k = hist3([x y],[n n]);
k(k<2) = nan;
pcolor((0:n-1)/n,(0:n-1)/n,k)
hold on
plot(x,y,'.r')
hold off
4 comentarios
darova
el 24 de Jun. de 2020
Here is the idea
- scale your data
- create an image (fill pixels)
- dilate image to create solid round object (circle)
- use imfindcircles
5 comentarios
Ver también
Categorías
Más información sobre Image Segmentation and Analysis en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!