動的タイムワーピング​関数を3つ以上の複数​のベクトルに適用し、​ワーピングされた後の​新しいベクトルを得る​ことはできますか?

12 views (last 30 days)
KO
KO on 16 May 2021
Answered: takemoto on 17 May 2021
動的タイム ワーピング関数(dtw)は、matlab の凡例では行数が同じx,yベクトル間の最短ユークリッド距離を表示するだけにとどまっています。
左辺のない dtw() のみの表記での出力がデフォルトになっています。
例えばd=dtw() として出力すると、最短ユークリッド距離が表示されるだけになります。ここで得られた最短ユークリッド距離をどのように活用すればワーピングされた後の新しいベクトルを作ることができるのでしょうか。
また、2ベクトルにとどまらず、複数ベクトル間での最短ユークリッド距離を得ることはできるでしょうか。先行論文ではそうしているものがありました(figure参照)。

Answers (1)

takemoto
takemoto on 17 May 2021
”ワーピング後の新しいベクトル”については、以下の様な手順はいかがでしょうか?
[~,ix,iy] = dtw(x,y);
plot(1:numel(iy),y(iy),'.-',1:numel(ix),x(ix), '.-')
dtwは、二つの信号間の距離を求めるため、3つ以上のベクトルに対応させる場合、各組み合わについて、都度dtw演算を施す、ということでいかがでしょうか?

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!