声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1763|回复: 14

[编程技巧] 求一个矩阵距离排序

[复制链接]
发表于 2009-3-23 23:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

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

[ 本帖最后由 ChaChing 于 2009-3-27 13:56 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-3-24 08:46 | 显示全部楼层
a =[1 2;1 7;4 2;2 5];  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)
 楼主| 发表于 2009-3-24 10:29 | 显示全部楼层

回复 沙发 ChaChing 的帖子

谢谢前辈帮忙,虽然还是有些看不懂 但是自己去查help好了 谢谢
发表于 2009-3-24 11:01 | 显示全部楼层
help pdist

评分

1

查看全部评分

发表于 2009-3-27 13:49 | 显示全部楼层
刚刚才发现楼主还要排序!
a =[1 2;1 7;4 2;2 5];  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)
 楼主| 发表于 2009-3-27 15:03 | 显示全部楼层

回复 5楼 ChaChing 的帖子

谢谢前辈
那如果我要在每一次求距离的过程中(比如求完第一个点和其他所有点的距离之后)做许多操作要怎么写呢 而且那些操作里要用到(以第一个点为例)第一个点和其他所有点的所有距离
多问一句:a(ii,:)-a(jj,:))是什么语法
发表于 2009-3-27 15:37 | 显示全部楼层
亲身试试嘛!
a =[1 2;1 7;4 2;2 5]; ii=2; jj=4;
a(ii,:)-a(jj,:)
[1,7]-[2,5]
发表于 2009-3-27 18:01 | 显示全部楼层
Chaching,帮这种水平的人估计你要帮他写整个程序了
发表于 2009-3-27 20:13 | 显示全部楼层

回复 8楼 ydlcsu 的帖子

个人认为水平好坏一回事, 愿不愿意学才是最重要的!
或许个人想法错误!
发表于 2009-3-27 20:55 | 显示全部楼层

回复 9楼 ChaChing 的帖子

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

回复 10楼 ydlcsu 的帖子

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

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

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

[ 本帖最后由 ChaChing 于 2009-3-28 09:31 编辑 ]
发表于 2009-3-28 16:34 | 显示全部楼层
借来学习一下。
发表于 2009-3-29 04:23 | 显示全部楼层
有没有依据矩阵某一行或某一列进行排序的命令?

比如针对第二列,按顺序对整个矩阵进行排序?
 楼主| 发表于 2009-3-29 11:14 | 显示全部楼层

回复 13楼 2365215 的帖子

这个还真不知道 不过我这个程序一行代表的是一个点 所以不用单独分开排序
发表于 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 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 17:33 , Processed in 0.069187 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表