Сопоставьте множество точек, значения которых представляют радиус окружности с радиусом R - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть набор точек данных, которые представляют радиус. Мой пороговый радиус равен R. Если мои точки данных имеют радиус R, я бы хотел показать это визуально с помощью Matlab.

Я успешно нарисовал окружность (используя уравнение окружности), но мои точки данных отображаются за пределами окружности, даже если их значения меньше R. Я думаю, что я не правильно отображаю точки данных.

Я делаю следующее:

%% Circle %%
% Radius = 1;
tx = linspace(-1,1,100);  %% X-data
ty = sqrt(1-tx.^2);      %% Y-data
ty2 = -ty;                %% (-)Y-data
%% Data Points %%
list_radius =[0.5870 0.2077 0.3012 0.4709 1.1524 6.7545 1.5581 1.8074];
%% PLOT %%
plot(tx,ty,':r',tx,ty2,':r')
hold on 
plot(list_radius)
hold off

Я ожидал увидеть точки с list_radius <1 внутри круга и точки с list_radius> 1 за пределами круга. Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 23 апреля 2019

Я предлагаю вам построить круги, генерирующие x и y точек для круга с

x = R & middot; cos (& Theta;)

y = R & middot; sin (& Theta;)

где Theta - вектор от 0 до 2 * pi, а R - желаемый радиус. Используя это уравнение, вам не нужно генерировать вектор ty2, и вы можете построить свой круг с помощью одной команды plot.
R = 1;
theta = linspace(0,2*pi,1000);

tx = R*cos(theta);
ty = R*sin(theta);

list_radius =[0.5870 0.2077 0.3012 0.4709 1.1524 6.7545 1.5581 1.8074];

plot(tx,ty,':r');
hold on;
plot(list_radius,zeros(1,numel(list_radius)),'*');
axis equal

С помощью этого фрагмента я предположил, что ваши list_radius точки лежат на оси X.

...