1个回答
展开全部
如下是代码,我测试了一下没什么大问题,你按照注释修改应该就可以了,如果有问题,再联系我。
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);
y0 = 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
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);
y0 = 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
追问
你好。请问怎么联系,另外,怎么把不封闭的图像闭合起来?
追答
QQ:944096506,晚上一般在线,你试过这个程序了吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询