2012-02-28 7 views
3

私はMatlabのすべての個々の点の間の距離を計算したい(好ましくは重複しない)点群を持っています。Matlabでのpdistの正当な使用

座標を持つ行列の形式は、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

。今はpdistを使って、私はdistances = pdist(points(:,1:3));distances = pdist(X(:,:,1:3));を使って各点間の真理値の距離を計算しようとしましたが、どちらも空行列を返します。

pdistを使用してこれらの距離を計算する方法を知っている人はいますか?それは0の代わりに3つの距離を返しますが、私は何か間違っている必要があります。


Btw。この質問は、thisに続くものです。最初はコメントで尋ねましたが、元の質問のかなりの拡張であるため、新しい質問に値すると思っていました。それが正しくない場合

答えて

0

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

またはsqueeze(...)の転置を試してみてください。

関連する問題