baojiea99 发表于 2009-3-23 23:00

求一个矩阵距离排序

如果一个矩阵比如
a =;
一行代表一个点 比如第一行代表点坐标(1,2)第二行代表点坐标(3,4)
想求出这个矩阵代表的所有点的距离并将距离排序要怎么做?

刚刚学习MATLAB 实在不会 先谢谢各位前辈了

[ 本帖最后由 ChaChing 于 2009-3-27 13:56 编辑 ]

ChaChing 发表于 2009-3-24 08:46

a =;na=length(a); dist=zeros(nchoosek(na, 2),1); id=0;
for ii=1:na, for jj=ii+1:na, id=id+1; dist(id)=sqrt( sum( (a(ii,:)-a(jj,:)).^2 ) ); end; end
disp(dist)

baojiea99 发表于 2009-3-24 10:29

回复 沙发 ChaChing 的帖子

谢谢前辈帮忙,虽然还是有些看不懂 但是自己去查help好了 谢谢

ydlcsu 发表于 2009-3-24 11:01

help pdist

ChaChing 发表于 2009-3-27 13:49

刚刚才发现楼主还要排序!
a =;na=length(a); dist=zeros(nchoosek(na, 2),1); id=0;
for ii=1:na, for jj=ii+1:na, id=id+1; dist(id)=sqrt( sum( (a(ii,:)-a(jj,:)).^2 ) ); end; end
dist=sort(dist); disp(dist)

baojiea99 发表于 2009-3-27 15:03

回复 5楼 ChaChing 的帖子

谢谢前辈
那如果我要在每一次求距离的过程中(比如求完第一个点和其他所有点的距离之后)做许多操作要怎么写呢 而且那些操作里要用到(以第一个点为例)第一个点和其他所有点的所有距离
多问一句:a(ii,:)-a(jj,:))是什么语法

ChaChing 发表于 2009-3-27 15:37

亲身试试嘛!
a =; ii=2; jj=4;
a(ii,:)-a(jj,:)
-

ydlcsu 发表于 2009-3-27 18:01

Chaching,帮这种水平的人估计你要帮他写整个程序了

ChaChing 发表于 2009-3-27 20:13

回复 8楼 ydlcsu 的帖子

个人认为水平好坏一回事, 愿不愿意学才是最重要的!
或许个人想法错误!

ydlcsu 发表于 2009-3-27 20:55

回复 9楼 ChaChing 的帖子

恩,严重同意。
我就是觉得lz和许多初学者的缺乏主动学习的能力。不愿意动手试。所以我很多情况下不会直接把解决办法或程序写出来,而只是给一个方向或关键命令,让其先自己摸索一下

baojiea99 发表于 2009-3-28 00:48

回复 10楼 ydlcsu 的帖子

呃。。。我已经快把整个程序写完了。。不过写的肯定很简陋了。。现在卡在了一个地方 就是比如将第一个点和其他所有点的距离求出来和求和 然后存在一个矩阵的第一位上 第二点的和存在那个矩阵的第二位上 但是总是报: In an assignmentA(I) = B, the number of elements in B and
I must be the same.也就是矩阵纬度不一样无法存储的错误。。在改程序中。。

学了快一个星期MATLAB了 感觉还好。。。今儿终于找到MATLAB断点在哪儿了。。。

断点编译。。查错的法宝啊

[ 本帖最后由 ChaChing 于 2009-3-28 09:31 编辑 ]

penghust 发表于 2009-3-28 16:34

借来学习一下。

2365215 发表于 2009-3-29 04:23

有没有依据矩阵某一行或某一列进行排序的命令?

比如针对第二列,按顺序对整个矩阵进行排序?

baojiea99 发表于 2009-3-29 11:14

回复 13楼 2365215 的帖子

这个还真不知道 不过我这个程序一行代表的是一个点 所以不用单独分开排序

ChaChing 发表于 2009-3-29 13:23

回复 13楼 2365215 的帖子

Help sort & sortrows

试试下式
aa=magic(5), sort(aa), sort(aa,2), sortrows(aa,2)

[ 本帖最后由 ChaChing 于 2009-3-29 13:29 编辑 ]
页: [1]
查看完整版本: 求一个矩阵距离排序