Interindividual distance from trajectories
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Ishani Mukherjee
il 12 Ott 2022
Commentato: Ishani Mukherjee
il 12 Ott 2022
At a given time frame, i have trajectories of 6 points having 6 X and 6 Y cordinates. I wish to calculate the distance between these points. Therefore, I will be obtaining 15 inter-point distances at a given frame. I wish to do so for n frames. Next, I would like to find the mean distance at a particular frame. How should I go about these? thank you in advance.
My data is in the form of text files (X and Y coordinates are in separate files- as attached).
Ishani
Edit: 15 inter-point distances, not 5 as pointed out by Chunru
2 Commenti
Chunru
il 12 Ott 2022
For 6 points having 6 X and 6 Y cordinates, you will have 5*6/2=15 paired distances.
doc pdist2
Risposta accettata
Chunru
il 12 Ott 2022
Modificato: Chunru
il 12 Ott 2022
% xy = randn(6,2);
x = readmatrix("https://www.mathworks.com/matlabcentral/answers/uploaded_files/1153563/X_fragment1.txt");
y = readmatrix("https://www.mathworks.com/matlabcentral/answers/uploaded_files/1153573/Y_fragment1.txt");
whos
nframes = size(x, 1);
dmean=zeros(nframes, 1);
for i=1:nframes
xy = [x(i,:)', y(i, :)'];
d = pdist2(xy, xy);
% extract the lower triangle
[ii, jj] = meshgrid(1:6, 1:6);
d1 = d(ii>jj); % d21, d31, ..., d61, d32, .., d62, ... d65
dmean(i) = mean(d1);
end
plot(1:nframes, dmean)
xlabel('frame number');
ylabel('mean distance')
5 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Text Analytics Toolbox 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!