Interindividual distance from trajectories

1 次查看(过去 30 天)
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 个评论
Chunru
Chunru 2022-10-12
For 6 points having 6 X and 6 Y cordinates, you will have 5*6/2=15 paired distances.
doc pdist2
Ishani Mukherjee
Ishani Mukherjee 2022-10-12
Thank you for your pointing this out. Yes, at a given time I will have 15 distances.

请先登录,再进行评论。

采纳的回答

Chunru
Chunru 2022-10-12
编辑:Chunru 2022-10-12
% 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
Name Size Bytes Class Attributes cmdout 1x33 66 char x 138x6 6624 double y 138x6 6624 double
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 个评论

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Text Analytics Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by