我希望在一组点之间创建一个“网络”,其中数据告知任意两点之间是否存在链接。
我想到的方法是绘制每一对点,并将每对夫妻叠加在彼此之上。
但是,如果有一种方法可以简单地在两点之间划一条线,那将更容易。
任何帮助将不胜感激!
答案 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), '-*');