時系列に合わせて、三次元プロットを線で結びたい

13 vues (au cours des 30 derniers jours)
yuta
yuta le 27 Mar 2023
Commenté : yuta le 28 Mar 2023
歩行中の膝、すね、足首、踵、つま先の三次元データがあり、それらを線で結び、図で書きたいです。
sampledataの内容を以下に記載します。
1~3列:膝のx,y,z座標
4~6列:脛のx,y,z座標
7~9列:足首のx,y,z座標
10~12列:踵のx,y,z座標
13~15列:つま先のx,y,z座標
行:時系列データ。100Hzでサンプリング
それぞれ三次元座標でプロットし、
膝とすね、すねと足首、足首とつま先、つま先と踵、踵と足首、足首と膝の6本の線を描きたいです。
添付した画像のようなイメージです。
また、それらを時系列データに合わせ、ストロボモーションのような形でplotできればと考えております。
もし良い方法ありましたら、ご教示いただけますと幸いです。
よろしくお願いいたします。

Réponse acceptée

Atsushi Ueno
Atsushi Ueno le 27 Mar 2023
for 文の中でplot3 関数を繰り返しても同じ事が出来ますが、プロパティのデータのみ変更してdrawnowの方が少し速いです。
load(websave('s.mat','https://jp.mathworks.com/matlabcentral/answers/uploaded_files/1337689/sampledata.mat'));
ofs = [0 3 6 12 9 6 0]; % 膝とすね、すねと足首、足首とつま先、つま先と踵、踵と足首、足首と膝
h = plot3(sampledata(1,1+ofs),sampledata(1,2+ofs),sampledata(1,3+ofs),'-or','LineWidth',3,'MarkerSize',10); % それぞれ三次元座標でプロット
grid on; xlim([0 500]); ylim([-1300 -400]); zlim([0 500]);
for r = 1:size(sampledata,1) % 行:時系列データ
h.XData = sampledata(r, 1+ofs);
h.YData = sampledata(r, 2+ofs);
h.ZData = sampledata(r, 3+ofs);
drawnow; % 時系列データに合わせ、ストロボモーションのような形でplot
pause(0.01); % 100Hzでサンプリング
end
  1 commentaire
yuta
yuta le 28 Mar 2023
ありがとうございます!
nコマの静止画のようにしたいときはfor分を使って行えばいいんですね。
勉強になりました。

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur RF Toolbox dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!