Matlab 3D中每个2点之间的相互距离

Matlab 3D中每个2点之间的相互距离,matlab,Matlab,有没有更快的方法来构造d 谢谢你的指导 编辑: 以下是一种避免显式循环的方法: N= 997 Me: Elapsed time is 17.271125 seconds. DiggyF: Elapsed time is 0.241841 seconds. Oli Charlesworth: Elapsed time is 0.120425 seconds. N=1986 DiggyF : Elapsed time is 1.1

有没有更快的方法来构造d

谢谢你的指导

编辑:


以下是一种避免显式循环的方法:

N= 997 
Me:               Elapsed time is 17.271125 seconds.
DiggyF:           Elapsed time is 0.241841 seconds.
Oli Charlesworth: Elapsed time is 0.120425 seconds.
N=1986 
DiggyF          : Elapsed time is 1.183639 seconds.
Oli Charlesworth: Elapsed time is 0.502964 seconds.
我不知道这是否会更快;你得试试看

这也会起作用:

dx = repmat(rx, 1, N) - repmat(rx.', N, 1);
如果您有统计工具箱或倍频程,也可以查看该函数

dx = repmat(rx, 1, N) - repmat(rx.', N, 1);
dx = meshgrid(rx) - meshgrid(rx)'
dy = meshgrid(ry) - meshgrid(ry)'
dz = meshgrid(rz) - meshgrid(ry)'