3

私はMatlabのすべての個々のポイント間の距離を計算したいポイントクラウドを持っています(できれば重複なし)。

座標を含むマトリックスは次のようにフォーマットされますpoints [ p x n x d ]。ここでp = 1(今のところ)、n は点の数と同じ大きさで、d は次元の数 (この場合は 3) と同じ大きさです。

これは私が持っているデータです:

  • points(:,:,1) = 1 2 3
  • points(:,:,2) = 4 5 6
  • points(:,:,3) = 7 8 9

だから私は3次元で3つの点を持っています. 現在 pdist を使用して、各ポイント間のユークリッド距離を計算しようとしましたが、distances = pdist(points(:,1:3));両方distances = pdist(X(:,:,1:3));とも空の行列を返します。

pdistこれらの距離を計算する方法を知っている人はいますか? 0 ではなく 3 距離を返す必要がありますが、私は何か間違ったことをしているに違いありません。


ところで。この質問は、この質問のフォローアップです。最初はコメントで質問しましたが、元の質問のかなりの拡張であるため、新しい質問に値すると思いました。

4

1 に答える 1

0

試す

distances = pdist(squeeze(X(:,:,1:3)));

squeeze(...)またはそれが正しくない場合の転置。

于 2012-02-28T17:34:05.163 に答える