首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >距离矩阵计算

距离矩阵计算
EN

Stack Overflow用户
提问于 2013-06-04 14:08:22
回答 1查看 255关注 0票数 0

我希望你对这个问题有正确的答案,这是一个相当具有挑战性的问题。

我有两个一维矢量YZ,它们保存着位于正方形网格上的N网格点的坐标。所以

代码语言:javascript
复制
Ny points along Y
Nz points along Z
N = Ny*Nz
Y = Y[N]; (Y holds N entries)
Z = Z[N]; (Z holds N entries)

现在,我们的目标是生成距离矩阵D,它包含N*N条目:因此,每一行矩阵D定义为网格上第一个点和残余(N )点之间的距离

通常,为了计算我所调用的整个矩阵

代码语言:javascript
复制
D = squareform(pdist([Y Z]));

或者,相当的,

代码语言:javascript
复制
D = pdist2([Y Z],[Y Z]).

但是,由于D是一个对称矩阵,我只想生成独立于N(N + 1)/2的条目,并将它们存储到一行有序向量Dd中。

因此,问题是:如何生成一个行顺序数组Dd,其条目由矩阵D的下三角项定义?此外,我还想把条目存储在列的主要顺序中。

我希望解释得足够清楚。

EN

回答 1

Stack Overflow用户

发布于 2013-06-04 14:25:44

正如woodchips所评论的,计算整个矩阵和提取您所关心的元素更简单、更快。以下是一种方法:

代码语言:javascript
复制
ndx = find(tril(true(size(D))));
Dd = D(ndx);

如果必须首先计算Dd的元素而不计算矩阵D,则可能需要双for循环。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16920040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档