Putting points into groups of three to find their centers
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jonathan Soucy
am 15 Mär. 2022
Bearbeitet: Image Analyst
am 15 Mär. 2022
For example, if I have points A, B, C, D, how would I be able to find the centers of circle ABC, ACD, ABD, and BCD?
I found a function to get the centers from circles: https://www.mathworks.com/matlabcentral/fileexchange/57668-fit-circle-through-3-points
But I do not know how to find all the combinations of three points from my data set. I thought the nchoosek function might work, but I have my data set includes both x and y values for each point and they are not intergers. Would appricate any suggestions!
2 Kommentare
Jan
am 15 Mär. 2022
Please post some code which defines the inputs. "points A,B,C,D" does not tell us, in which format you save the coordinates: [1 x 2], [2 x 1], fields "x" and "y" of a struct, etc.
Akzeptierte Antwort
Jan
am 15 Mär. 2022
Bearbeitet: Jan
am 15 Mär. 2022
Guessing, that the "points" are [1x2] vectors:
A = [1, 12];
B = [2, 10];
C = [3, 17];
D = [4, 9];
P = cat(1, A, B, C, D); % Much better than a set of variables!
% Now you can usen an index:
Groups = nchoosek(1:4, 3);
for k = 1:size(Gropus, 1)
aGroup = Gropus(k, :);
ThreeP = P(aGroup, :); % Coordinates of 3 points as [3 x 2] matrix
... Do what you want with them
end
Idea: Do not create a set of variables, but store them in a matrix directly. Then it is trivial to access them using an index.
2 Kommentare
Image Analyst
am 15 Mär. 2022
Bearbeitet: Image Analyst
am 15 Mär. 2022
Why do just a subset of the numbers? Why not do them all? A hundred or more is not very large. Even a million wouldn't be. If you have tens of millions though, it might take a bit of time.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!