在绘图点
Over graphing points
我正在尝试随机创建 0 - 180 之间的 100 个点,然后绘制它们。然后检查它们之间的距离,如果它低于某个阈值,则在它们之间画一条线。我可以得到绘制的点,甚至一些线。但是不对,有些距离足够近的点没有映射,有些距离较远的点被映射。
clc; clear all; format compact;
a = [2 3]
b = [16 50]
array = randi(180,100,1);
array2 = randi(180,100,1);
% x = array(:, 1);
% y = array(:,2);
plot(array,array2, '.')
line (a,b)
% radius is 18, which is given k * given d
for j = 1:100
for i = 1:100
d = sqrt((array(j)-array(i))^2+(array2(j)-array2(i))^2);
if d <= 18
point1 = [array(j), array2(j)];
point2 = [array(i), array2(i)];
line( point1, point2)
end
end
end
示例输出:
我现在明白了。 line
不会从一个点到下一个点画一条线,它通过给定的 x 和 y 坐标画一条线,很像 plot
。替换这个位:
point1 = [array(j), array2(j)];
point2 = [array(i), array2(i)];
line( point1, point2)
有了这个:
x = [array(i), array(j)];
y = [array2(i), array2(j)];
line(x, y);
或等同于:
line(array([i,j]),array2([i,j]));
主动提供的建议:
使用比 array
和 array2
更有意义的名称。例如 x
和 y
。用更好的名字很容易发现这个错误!
我正在尝试随机创建 0 - 180 之间的 100 个点,然后绘制它们。然后检查它们之间的距离,如果它低于某个阈值,则在它们之间画一条线。我可以得到绘制的点,甚至一些线。但是不对,有些距离足够近的点没有映射,有些距离较远的点被映射。
clc; clear all; format compact;
a = [2 3]
b = [16 50]
array = randi(180,100,1);
array2 = randi(180,100,1);
% x = array(:, 1);
% y = array(:,2);
plot(array,array2, '.')
line (a,b)
% radius is 18, which is given k * given d
for j = 1:100
for i = 1:100
d = sqrt((array(j)-array(i))^2+(array2(j)-array2(i))^2);
if d <= 18
point1 = [array(j), array2(j)];
point2 = [array(i), array2(i)];
line( point1, point2)
end
end
end
示例输出:
我现在明白了。 line
不会从一个点到下一个点画一条线,它通过给定的 x 和 y 坐标画一条线,很像 plot
。替换这个位:
point1 = [array(j), array2(j)];
point2 = [array(i), array2(i)];
line( point1, point2)
有了这个:
x = [array(i), array(j)];
y = [array2(i), array2(j)];
line(x, y);
或等同于:
line(array([i,j]),array2([i,j]));
主动提供的建议:
使用比 array
和 array2
更有意义的名称。例如 x
和 y
。用更好的名字很容易发现这个错误!