我希望你能对这个相当具有挑战性的问题有正确的答案。
我有两个一维向量Y和ZN ,它们保存位于正方形网格上的网格点的坐标。所以
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定义为网格上第i 个点与剩余(N - i)个点之间的距离。
通常,要计算整个矩阵,我会调用
D = squareform(pdist([Y Z]));
或者,等效地,
D = pdist2([Y Z],[Y Z]).
但是,由于D是一个对称矩阵,我只想生成N(N + 1)/2独立的条目并将它们存储到按行排序的向量Dd中。
所以问题是:如何生成一个行序数组Dd,其条目由矩阵的下三角项定义D?此外,我还想以列优先顺序存储条目。
我希望解释足够清楚。