How do I calculate the acceleration using only 3D distances?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
lil brain
am 15 Apr. 2022
Kommentiert: Les Beckham
am 18 Apr. 2022
Hi,
I have a list of distances in each cell of acc_dist . The first three columns in each cell are xyz coordinates. So column one are all x, column two are all y, and column three are all z. The rows are the coordinate points measured at a speed of 72 Hz.
I am trying to compute the acceleration of these coordinate points by first calculating the 3D euclidean distance between each point and the adjacent point like so:
sqrt((x2-x1).^2+(y2-y1).^2+(z2-z1).^2)
And then I am trying to use the acceleration formula like so:
acceleration = dv/dt
dv = change in velocity
dt = change in time
How would I go about calculating the acceleration for the entire length of each list?
Thank you!
4 Kommentare
Walter Roberson
am 15 Apr. 2022
Use gradient() twice.
However... acceleration is a signed vector quantity, derived from velocity which is a signed vector quantity. This is a problem for you because sqrt((x2-x1).^2+(y2-y1).^2+(z2-z1).^2) is not signed and not a vector. You are calculating speed, not velocity.
Akzeptierte Antwort
Les Beckham
am 15 Apr. 2022
Bearbeitet: Les Beckham
am 15 Apr. 2022
load acc_dist.mat
xyz = cell_of_double_pre_ballsCopy{1};
dxyz = diff(xyz); % difference between adjacent points in xyz coordinates
v = sqrt(dxyz(:,1).^2 + dxyz(:,2).^2 + dxyz(:,3).^2) * 72;
a = gradient(v, 1/72);
t = 0:1/72:(length(a)-1)/72;
plot(t,v)
plot(t,a)
13 Kommentare
Walter Roberson
am 17 Apr. 2022
"Apply this function to every element of this array" is one of the fundamental array operations in theory.
Consider for example,
A = [1 3 5]
B = A.^2
From a theoretical perspective, this is not "squaring the vector": from a theoretical perspective, it is "Apply the function x->x^2 to each element of A, returning an array of the results.
This is frequenty called the "map" operation. And having a brief call that says that you are mapping a function over all of the elements of an array, is often significantly clearer than using a for loop.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!





