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
展开
 我来答
qingningleyun
2015-05-20 · TA获得超过5852个赞
知道大有可为答主
回答量:2991
采纳率:30%
帮助的人:3013万
展开全部
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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式