-2

x、y データの 2 つのセットがあります。これらのデータのプロットは、次の図で確認できます。

ここに画像の説明を入力

たとえば、青い線が基準の場合、青い線と赤い線の間の距離を計算するにはどうすればよいですか? より明確にするために、赤い線が青い線よりも後ろにある場合、その差は負になり、逆の場合も同様です。

pdist を使用してみましたが、これは私が望む解決策ではないと思います。

どんな助けでも本当に感謝します。ありがとうございました

4

1 に答える 1

4

各時間ステップの軌道間のユークリッド距離を計算するのは非常に簡単ですが、難しい部分はこの距離に署名することです。1 つの可能性は、外積を使用することです。

これが私のコードです:

% --- Define and display sample curves
x1 = cumsum(rand(100,1)-0.3);
y1 = cumsum(rand(100,1)-0.3);

x2 = cumsum(rand(100,1)-0.3);
y2 = cumsum(rand(100,1)-0.3);

subplot(1,2,1)
plot(x1, y1, x2, y2)

% --- Get the distance
d = sqrt((x2-x1).^2 + (y2-y1).^2);

% --- Sign the distance with cross product
u = [x1(:) y1(:)];
u(:,3) = 0;

v = [x2(:) y2(:)];
v(:,3) = 0;

tmp = cross(u, v);
d = d.*sign(tmp(:,3));

% --- Display the result
subplot(1,2,2)
plot(d)

次の結果が得られます(右のプロット):

結果

一番、

于 2015-03-07T17:09:00.030 に答える