matlab中有一组坐标点,如何求所有坐标点与其中一个坐标点求距离
matlab中有一组坐标点,如何求所有坐标点与其中一个坐标点求距离,就是第一个点与所有其他点求距离,然后第二个点与其他所有点求距离,知道遍历完所有坐标点。这是我现有的求第...
matlab中有一组坐标点,如何求所有坐标点与其中一个坐标点求距离,就是第一个点与所有其他点求距离,然后第二个点与其他所有点求距离,知道遍历完所有坐标点。这是我现有的求第一个点的代码,但是怎么遍历所有点就不懂了。
a=[1,100,3,4,5,6,7,8,9;
10,11,12,13,14,15,16,17,18];
i_1=size(a,1);
i_2=size(a,2);
c=zeros(1,i_2-1);
for i=2:i_2
b=a(:,i)-a(:,1);
c(i-1)=sqrt(b(1)^2+b(2)^2);
end
c 展开
a=[1,100,3,4,5,6,7,8,9;
10,11,12,13,14,15,16,17,18];
i_1=size(a,1);
i_2=size(a,2);
c=zeros(1,i_2-1);
for i=2:i_2
b=a(:,i)-a(:,1);
c(i-1)=sqrt(b(1)^2+b(2)^2);
end
c 展开
1个回答
展开全部
a = [1,100,3,4,5,6,7,8,9;10,11,12,13,14,15,16,17,18];
D = pdist(a')
更多追问追答
追问
这个是两两求距离吧?我要的是第一个与所有点求完距离,然后到第二个点与所有点求距离,每一个点都进行n-1次求距离操作。
追答
a = [1,100,3,4,5,6,7,8,9;10,11,12,13,14,15,16,17,18];
D = pdist(a');
[n,m] = size(a);
t = m-1:-1:2;
for p = 1:m-2
r{p} = {D(1:t(p))};
D(1:t(p)) = [];
end
celldisp(r)
r{1}{1} =
99.0051 2.8284 4.2426 5.6569 7.0711 8.4853 9.8995 11.3137
r{2}{1} =
97.0052 96.0208 95.0474 94.0851 93.1343 92.1954 91.2688
r{3}{1} =
1.4142 2.8284 4.2426 5.6569 7.0711 8.4853
r{4}{1} =
1.4142 2.8284 4.2426 5.6569 7.0711
r{5}{1} =
1.4142 2.8284 4.2426 5.6569
r{6}{1} =
1.4142 2.8284 4.2426
r{7}{1} =
1.4142 2.8284
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |