matlab中,如何把相邻的点连起来?最好能规定距离.我提取边缘,结果都是断点~

来源:学生作业帮助网 编辑:六六作业网 时间:2024/05/10 10:41:54
matlab中,如何把相邻的点连起来?最好能规定距离.我提取边缘,结果都是断点~matlab中,如何把相邻的点连起来?最好能规定距离.我提取边缘,结果都是断点~matlab中,如何把相邻的点连起来?最

matlab中,如何把相邻的点连起来?最好能规定距离.我提取边缘,结果都是断点~
matlab中,如何把相邻的点连起来?
最好能规定距离.我提取边缘,结果都是断点~

matlab中,如何把相邻的点连起来?最好能规定距离.我提取边缘,结果都是断点~
如下是代码,我测试了一下没什么大问题,你按照注释修改应该就可以了,如果有问题,再联系我.
function link_dot()
% 将相邻的两个点连接
% step0:我自己生成的测试数据,你可以把 step0 去掉,用你的数据替换
x = 0:0.1:10; %% 请用行向量替换 x,y
y = x.^3 - 13*x.^2;
% step1:连接最近的两个点,从 x 值最小的点开始
% 1.0:
[x,index] = sort(x); %% 给 x 排序
y = y(index); %% y 也按 x 排序
% 1.1:将最近的两点连接起来
N = length(x);
figure;
hold on;
x0 = x(1);
\x09y0 = y(1);
x(1) = [];
y(1) = [];
for i = 2:N
d = sqrt((x - x0).^2 + (y - y0).^2); %% 求所有点距 (x0,y0)的距离
dmin = min(d); %% 找到距离最小值
p = (d == dmin); %% 找到最小值在数组中的位置,即可找到最近的坐标点
x1 = x(p); %% 找到最近的点
y1 = y(p);
plot([x0,x1],[y0,y1],'-+'); %% 连接邻近两点
x0 = x(p); %% 以这个点作为下一个计算点
y0 = y(p);
x(p) = []; %% 删除当前点
y(p) = [];
if i == N-15
end
end
hold off;
end