我有一个带有点(X,Y坐标)的数据集,它们代表冰川的形状。但是,当我用
绘制它们时% Import glacier shape
Glaciershape = readtable('dem_glacierlocation.txt');
figure(1);
S = Glaciershape(:,1);
T = Glaciershape(:,2);
plot(S,T,'-')
似乎一个点在他们不需要时连接(见附件,在形状的左上角)。有没有办法来解决这个问题?您可以在下面的链接中下载数据集
谢谢!
答案 0 :(得分:0)
plot
将假设每组x,y坐标在一系列中是连续的,并且在没有关注内容的情况下将它们全部绘制出来。
如果您可以对点的分布做出一些假设,那么您可以使用它来打破那些失败的点。例如,系列中的点始终小于前一点的100个单位。否则,这将开始一个新的系列列表。使用它,您可以使用diff
检查后续点之间的距离,如下所示:
% assume data stored in xcoord,ycoord
% check for distance greater than 100
idx = find(sqrt(diff(xcoords).^2 + diff(ycoords).^2) > 100 );
% in this particular data set there are 3 disjoint sections
% plot out each section - here each done explicitly for illustration
plot(xcoords(1:idx(1)),ycoords(1:idx(1)));
hold on;
plot(xcoords(idx(1)+1:idx(2)),ycoords(idx(1)+1):idx(2));
plot(xcoords(idx(2)+1:idx(3)),ycoords(idx(2)+1):idx(3));
plot(xcoords(idx(3)+1:end),ycoords(idx(2)+1):end);
编辑:在查看提供的数据文件后添加了其他情节
希望有所帮助...
答案 1 :(得分:0)
如果您正在寻找连接循环中所有点的最短路径,这称为旅行salesman problem,这很难解决。
如果您只想找到一种可视化的简单方法,请尝试:
plot(S,T,'.')
用上面的'。'替换上面的' - '。这将绘制未连接的x,y坐标,你可以让人类大脑进行连接,这是擅长的。
这是没有连接的图像。看起来在顶部有两个区域是洞,这就是连接所有点可能有问题的原因。