求一个矩阵距离排序
如果一个矩阵比如a =;
一行代表一个点 比如第一行代表点坐标(1,2)第二行代表点坐标(3,4)
想求出这个矩阵代表的所有点的距离并将距离排序要怎么做?
刚刚学习MATLAB 实在不会 先谢谢各位前辈了
[ 本帖最后由 ChaChing 于 2009-3-27 13:56 编辑 ] 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)
回复 沙发 ChaChing 的帖子
谢谢前辈帮忙,虽然还是有些看不懂 但是自己去查help好了 谢谢 help pdist 刚刚才发现楼主还要排序!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)
回复 5楼 ChaChing 的帖子
谢谢前辈那如果我要在每一次求距离的过程中(比如求完第一个点和其他所有点的距离之后)做许多操作要怎么写呢 而且那些操作里要用到(以第一个点为例)第一个点和其他所有点的所有距离
多问一句:a(ii,:)-a(jj,:))是什么语法 亲身试试嘛!
a =; ii=2; jj=4;
a(ii,:)-a(jj,:)
- Chaching,帮这种水平的人估计你要帮他写整个程序了
回复 8楼 ydlcsu 的帖子
个人认为水平好坏一回事, 愿不愿意学才是最重要的!或许个人想法错误!
回复 9楼 ChaChing 的帖子
恩,严重同意。我就是觉得lz和许多初学者的缺乏主动学习的能力。不愿意动手试。所以我很多情况下不会直接把解决办法或程序写出来,而只是给一个方向或关键命令,让其先自己摸索一下
回复 10楼 ydlcsu 的帖子
呃。。。我已经快把整个程序写完了。。不过写的肯定很简陋了。。现在卡在了一个地方 就是比如将第一个点和其他所有点的距离求出来和求和 然后存在一个矩阵的第一位上 第二点的和存在那个矩阵的第二位上 但是总是报: In an assignmentA(I) = B, the number of elements in B andI must be the same.也就是矩阵纬度不一样无法存储的错误。。在改程序中。。
学了快一个星期MATLAB了 感觉还好。。。今儿终于找到MATLAB断点在哪儿了。。。
断点编译。。查错的法宝啊
[ 本帖最后由 ChaChing 于 2009-3-28 09:31 编辑 ] 借来学习一下。 有没有依据矩阵某一行或某一列进行排序的命令?
比如针对第二列,按顺序对整个矩阵进行排序?
回复 13楼 2365215 的帖子
这个还真不知道 不过我这个程序一行代表的是一个点 所以不用单独分开排序回复 13楼 2365215 的帖子
Help sort & sortrows试试下式
aa=magic(5), sort(aa), sort(aa,2), sortrows(aa,2)
[ 本帖最后由 ChaChing 于 2009-3-29 13:29 编辑 ]
页:
[1]