将值集代表半径的点映射到半径为R的圆

时间:2019-04-19 05:17:22

标签: matlab matlab-figure

我有一组代表半径的数据点。我的阈值半径为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 :(得分:0)

我建议您为

x = R·cos(Θ)

y = R的圆绘制生成xy点的圆·sin(Θ)

其中,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轴上。