查看: 5922|回复: 5|关注: 0

[已解决] 在Matlab下散乱点如何按照顺序画出轮廓线?

[复制链接]

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
本帖最后由 jnlifeng 于 2016-11-18 17:54 编辑

现有二维无序点(数据在附件中),想把这些点按照顺序连城一个闭合曲线。

上面的图是二维点,下面的图是想要达到的效果。至于是把这些点顺时针(或者逆时针)排列后再用plot画出来或者用投影方法画出来都无所谓。请问大神们都有什么好办法吗?先谢谢了:)


无序点

无序点

轮廓线

轮廓线

data.txt

18.84 KB, 下载次数: 42

二维点数据

回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

中级

513 麦片

财富积分


5001500


5

主题

1163

帖子

112

最佳答案
  • 关注者: 24
发表于 2016-11-17 21:13:14 | 显示全部楼层
是这样的么???
(Y1I9}V)8KG)_1F}MP3{5AS.png
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2016-11-18 00:45:59 | 显示全部楼层

对对对,这样效果就很好了。请问可以告诉我是如何实现的吗?非常感谢!
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

中级

513 麦片

财富积分


5001500


5

主题

1163

帖子

112

最佳答案
  • 关注者: 24
发表于 2016-11-18 00:58:43 | 显示全部楼层 |此回复为最佳答案
mydata = sortrows(importdata('data.txt.'),-1);

x = mydata(:,1);
y = mydata(:,2);

[a,b] = min(x);
temp = y>=y(b);
x1 = x(temp);
y1 = y(temp);
temp = y<=y(b);
x2 = x(temp);
y2 = y(temp);
plot(x1,y1,'r',x2,y2,'r')
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

3

帖子

0

最佳答案
 楼主| 发表于 2016-11-18 17:22:33 | 显示全部楼层
jiangxuzhen 发表于 2016-11-18 00:58
mydata = sortrows(importdata('data.txt.'),-1);

x = mydata(:,1);

已经测试过了,太完美了,要的就是这个效果。
非常感谢你的热心帮助!!!
回复此楼 已获打赏: 0 积分

举报

新手

5 麦片

财富积分


050


18

主题

49

帖子

0

最佳答案
发表于 2016-11-18 20:24:44 | 显示全部楼层
追问:怎样把第二个图的实线做成等距的虚线。我遇到的问题是得到你第一个图那样的效果,想把第二个图做成等距的虚线
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表