为什么绘图(x,y,'或')和plot(x,y)给出不同的结果

4次观看(过去30天)
蜘蛛侠
蜘蛛侠 2021年8月12日
评论: 沃尔特罗伯森 2021年8月12日
我有一组点,我想把它们形象化。
通过运行以下链路中提到的代码来获得该点
基本上,这是一种结构,它与其他一些东西一起存储边缘的位置。
现在,当我使用以下命令绘制Edges.x和Edges.y时
情节(edges.x edges.y '或');结果是这样的
虽然绘图的结果(edege.x,edges.y)是这样的
代码的原始结果如下
你们知道为什么线图会是这样的吗,还有怎么修正它。
注1:看完图片后,我可以直观的看出正确的顺序。如果你看边缘。期望的起点是[103,66.3015],终点也是

接受答案

沃尔特罗伯森
沃尔特罗伯森 2021年8月12日
这是预期的。没有任何要求算法返回该点是边缘跟踪顺序。
你应该使用边界() https://www.mathwands.com/help/matlab/ref/boundary.html. 检测顺序
idx =边界(边缘。x, edge.y);
绘图(Edge.x(IDX),Edge.y(IDX))
4评论
沃尔特罗伯森
沃尔特罗伯森 2021年8月12日
您可能需要增加缩小更多(最多1.0)
然而,如果你看45层附近,你可以看到两个不同的斑点之间最近的接近。现在将这个距离与基数中间78左右的差距大小进行比较:基数差距看起来差不多,甚至可能更大。所以一次你想让距离是无关紧要的不是表示不同的物体,但另一次你想让距离表示新的物体。
我想了一会儿也许你可以通过取每个点最近的两个相邻点来得到某个地方,但是再看看底部的缺口。从左边开始的第二个标记,这对点靠得很近:这对点中最右边的两个点都在左边。
A B C DEF.GHIJ
F的两个最近邻是D和E,而不是E和g,所以最近邻技术本身是不够的。也许你可以用5个最近的邻居和一些逻辑来得出结论。

登录评论。

更多答案(2)

Chunru.
Chunru. 2021年8月12日
线绘制从一个点到另一个点绘制线。因此点的顺序是重要的。“或”选项只需在没有绘制线的情况下绘制数据点。
如果数据点处于正确的顺序,则可以看到与散点图('RO')更类似的线绘图。

KSSV
KSSV 2021年8月12日
当你用标记(即'O')绘制时, 阴谋 不会连接标记。但当你简单地绘图时,它会试图用直线连接它们。你的点不是按顺序排列的,所以它们是连在一起的。
附加你的分数以得到你想要的。
1条评论
蜘蛛侠
蜘蛛侠 2021年8月12日
我猜这就是我最终要做的事情,但最终,手动纠正一本书的顺序不会符合设计可以概括到任何图像的算法的最终目标。
对于复杂的图像,这是结果。因此,如此重新排序的积分(必须做到的那个)将是艰苦的残酷。

登录评论。

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!