Azzera filtri
Azzera filtri

Matrix indexing in a function

3 visualizzazioni (ultimi 30 giorni)
arun Dhillon
arun Dhillon il 9 Ott 2019
Risposto: Stephan il 10 Ott 2019
I have an m*3 matrix(metric). Inside the matrix 'metric', I am having x(1st column),y(2nd column) coordinates and the respective radii(3rd column) of each of those circles; thus each row represent a different circle. I need to find if any of the respective circles are intersecting with each other and if yes then which one is intersecting with which one. My question is how can I compare or calculate each of the circle and compare with each other to see if any of the circles are intersecting and where.
Please guide me with any way to solve this problem.
Any suggestion or help is greatly appreciated.

Risposta accettata

Stephan
Stephan il 10 Ott 2019
It is a good idea to work with polyshape objects in this case:
% Find intersected circles
P = [0 0 1; 1 1.5 0.75; 2 1 0.5];
for k = 1:size(P,1)
polyout(k) = polybuffer(P(k,1:2),'points',P(k,3));
end
TF = overlaps(polyout)
% Plot results
plot(P(:,1),P(:,2),'r.','MarkerSize',10)
hold on
plot(polyout)
axis equal
hold off
results in a matrix showing you which circles are intersecting:
TF =
3×3 logical array
1 0 0
0 1 1
0 1 1
looks:
circles.PNG
read more here:

Più risposte (0)

Categorie

Scopri di più su Line Plots in Help Center e File Exchange

Prodotti


Release

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by