Если вы хотите сгенерировать такие точки данных, вам понадобится их распределение вероятностей, чтобы иметь возможность генерировать точки.
Для вашей точки у меня нет реальных распределений, поэтому я могу толькодать приближение.Из вашей фигуры я вижу, что оба лежат примерно на окружности со случайным радиусом и ограниченным пролетом для угла.Я предполагаю, что эти углы и радиусы равномерно распределены по определенным диапазонам, что кажется довольно хорошей отправной точкой.
Поэтому также имеет смысл генерировать случайные данные в полярных координатах (т.е. угол и радиус) вместодекартовы (т.е. горизонтальные и вертикальные), и преобразуйте их, чтобы разрешить построение.
C1 = [0 0]; % center of the circle
C2 = [-5 7.5];
R1 = [8 10]; % range of radii
R2 = [8 10];
A1 = [1 3]*pi/2; % [rad] range of allowed angles
A2 = [-1 1]*pi/2;
nPoints = 500;
urand = @(nPoints,limits)(limits(1) + rand(nPoints,1)*diff(limits));
randomCircle = @(n,r,a)(pol2cart(urand(n,a),urand(n,r)));
[P1x,P1y] = randomCircle(nPoints,R1,A1);
P1x = P1x + C1(1);
P1y = P1y + C1(2);
[P2x,P2y] = randomCircle(nPoints,R2,A2);
P2x = P2x + C2(1);
P2y = P2y + C2(2);
figure
plot(P1x,P1y,'or'); hold on;
plot(P2x,P2y,'sb'); hold on;
axis square
Это дает:

Этот метод работает относительно хорошо, когда выиметь дело с распределениями, которые вы можете легко преобразовать и когда вы можете легко описать возможные местоположения точек.Если вы не можете, есть другие методы , такие как метод выборки обратного преобразования, которые предлагают алгоритмы для генерации данных вместо ручного преобразования переменных, как я делал здесь.