24小时热门版块排行榜    

查看: 1049  |  回复: 9
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

sgyin

铁杆木虫 (正式写手)

[交流] matlab编程问题

A是m*3的矩阵,是m个原子的坐标值,请问如何求的所有两两原子之间的距离R?(R应该有m*(m-1)/2个分量。)
我试着用for

for ii=1:m,
    r(ii)=sqrt((A(1,:)-A(ii,:)).^2);
end
这样只得到m个值。
该如何把这个程序完成啊?
谢谢

[ Last edited by csfn on 2008-12-29 at 20:20 ]
回复此楼

» 猜你喜欢

<ahref="http://www.TickerFactory.com/"><imgborder="0"src=&am
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dnp

荣誉版主 (知名作家)

小木虫浪子

优秀版主

★ ★ ★ ★
spur(金币+2,VIP+0):感谢帮助!欢迎常来!
csfn(金币+2,VIP+0):thanks~
我想你的矩阵A中的坐标值有三个吧?分别代表三维的坐标,你可以这样算:
R=[];
for i=1:m
for j=i:m
R(i,j)=sqrt((A(i,: )-A(j,: )).^2);
R(j,i)=R(i,j);
end
end
这样应该得到的是一个m*m的对称矩阵,对角线上的元素为0。
如果m<1000的话,这样算很快,而且matlab占的内存也不大。
What would Jesus do?
7楼2008-01-02 11:58:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

y1ding

铁杆木虫 (著名写手)

★ ★ ★ ★ ★
spur(金币+2,VIP+0):感谢帮助!
csfn(金币+3,VIP+0):thanks~
for ii=1:m-1
   for jj=ii:m
    r(ii_ii)=sqrt((A(jj,:)-A(ii,:)).^2);
end
2楼2008-01-02 09:02:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

y1ding

铁杆木虫 (著名写手)

for ii=1:m-1
   for jj=ii:m
    r(ii_ii)=sqrt((A(jj,:)-A(ii,:)).^2);
end
end
3楼2008-01-02 09:02:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

y1ding

铁杆木虫 (著名写手)

for ii=1:m
   for jj=ii:m
    r(ii_ii)=sqrt((A(jj,:)-A(ii,:)).^2);
end
4楼2008-01-02 09:02:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见