Calculate 3D angles?

2 visualizzazioni (ultimi 30 giorni)
mlsnyder08
mlsnyder08 il 30 Mar 2017
Risposto: Ryan Plucinski il 14 Feb 2019
I have a 40x12 matrix in MatLab. The first three columns represent the (x,y,z) coordinates of the hip, columns 4-6 represent the (x,y,z) coordinates of the knee, and columns 7-9 represent the (x,y,z) coordinates of the ankle. I want to calculate the angle formed between the hip-knee and knee-angle segment.
I know that I can simply use Pythagorean theorem for x,y,z to get the lengths and then use acos to get the angle, but I'd like to do it in a more advanced way with vectors!!!
1) How can I turn certain rows and columns of data from my big matrix into a vector?
2) How can I use those vectors (hip-knee and knee-ankle) to calculate a 3D angle?
Thank you so much!

Risposte (2)

KSSV
KSSV il 30 Mar 2017
  1 Commento
mlsnyder08
mlsnyder08 il 31 Mar 2017
Thank you for the link. I saw that question before but wanted to know how to selectively choose certain rows and columns from my big matrix with which to populate the vector. At that point, I will be able to use the answer from the link you provided.

Accedi per commentare.


Ryan Plucinski
Ryan Plucinski il 14 Feb 2019
1). you can do this in numerous ways, depending on how you want you vector to be.
ex: this code takes the first 3 hip coordinates and seperates them to a different vector, HipX, HipY, and HipZ respectively
%data=excel file of 40x12
data=xlsread('excelfile.xls');
HipX=excelfile(:,1);
HipY=excelfile(:,2);
HipZ=excelfile(:,3);

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by