你如何在matlab中的点之间画一条线?

时间:2011-04-01 15:32:24

标签: matlab graph matplotlib plot

我希望在一组点之间创建一个“网络”,其中数据告知任意两点之间是否存在链接。

我想到的方法是绘制每一对点,并将每对夫妻叠加在彼此之上。

但是,如果有一种方法可以简单地在两点之间划一条线,那将更容易。

任何帮助将不胜感激!

6 个答案:

答案 0 :(得分:10)

如果您可以将线段的x和y坐标组织成2-by-N数组,则可以使用函数PLOT将矩阵的每列绘制为一条线。这是一个绘制单位正方形的四条线的简单示例:

x = [0 1 1 0; ...
     1 1 0 0];
y = [0 0 1 1; ...
     0 1 1 0];
plot(x,y);

这将以不同的颜色绘制每条线。要将所有线条绘制为黑色,请执行以下操作:

plot(x,y,'k');

答案 1 :(得分:7)

使用plot。假设您的两个点是a = [x1 y1]b = [x2 y2],那么:

plot([x1 x2],[y1 y2]);

答案 2 :(得分:2)

如果你的意思是I'm looking to create a "web" between a set of points where the data tells whether there is a link between any two points实际上某种graph由其邻接矩阵表示(与其他答案相反,简单就是连接点),那么:

gplot function可能确实是适合你的工具。它是绘制表示为邻接矩阵的graph的节点和链接的基本可视化工具。

答案 3 :(得分:2)

使用此功能:

function [] = drawline(p1, p2 ,color)
%enter code here
theta = atan2( p2(2) - p1(2), p2(1) - p1(1));
r = sqrt( (p2(1) - p1(1))^2 + (p2(2) - p1(2))^2);
line = 0:0.01: r;
x = p1(1) + line*cos(theta);
y = p1(2) + line*sin(theta);
plot(x, y , color)

称之为:

drawline([fx(i) fy(i)] ,[y(i,1) y(i,2)],'red')

信用:http://www.mathworks.com/matlabcentral/answers/108652-draw-lines-between-points#answer_139175

答案 4 :(得分:1)

假设您想要一条坐标为(x1,y1)和(x2,y2)的直线。然后使用x和y坐标创建一个向量: x = [x1 x2] y = [y1 y2] 。 Matlab有一个名为'Line'的函数,它以这种方式使用: 的线(X,Y)

答案 5 :(得分:0)

如果您想看到绘图线的效果,可以在plot循环注释中使用for data是包含' x,y&的* 2矩阵#39; ' n'点

clf(figure(3))
for i = 1 : length(data)-1
 plot([data(i,1),data(i+1,1)], [data(i,2),data(i+1,2)], '-*');
 hold on
end
hold off

或者可以使用此语句一步绘制

plot(data(:,1), data(:,2), '-*');