How to plot variability (max/min) of large data set?

6 次查看(过去 30 天)
I have a very large data set with many trials of x coordinate, y coordinate, and time (ms). I am trying to graph the max and min distances between x/y points at each time. Any advice?

回答(1 个)

Rahul
Rahul 2025-7-18
Hi Julia,
I understand you are working with a large dataset containing multiple trials of '(x, y)' coordinates over time, and you are trying to compute and plot the maximum and minimum distances between points at each time step.
One efficient way to do this in MATLAB is to loop through each unique time value, compute the pairwise distances between all '(x, y)' points at that time, and then extract the min and max distances.
Here is how you can implement the same using MATLAB script:
% Assuming your data is in a table or array format with columns: time, x, y
times = unique(data(:,1)); % Get unique time points
nTimes = length(times);
maxDist = zeros(nTimes,1);
minDist = zeros(nTimes,1);
for i = 1:nTimes
t = times(i);
idx = data(:,1) == t;
xy = data(idx, 2:3); % Get [x y] at current time
if size(xy,1) > 1
D = pdist(xy); % Compute pairwise distances
maxDist(i) = max(D);
minDist(i) = min(D);
else
maxDist(i) = 0;
minDist(i) = 0;
end
end
% Plot results
figure;
plot(times, maxDist, 'r-', 'DisplayName', 'Max Distance');
hold on;
plot(times, minDist, 'b-', 'DisplayName', 'Min Distance');
xlabel('Time (ms)');
ylabel('Distance');
legend('show');
title('Min and Max Distance Between Points Over Time');
grid on;
This approach uses 'pdist'function for performing pairwise operations, which is efficient for computing all pairwise Euclidean distances. You can adapt it further based on how your data is structured (matrix, table, etc.).
For more information regarding the usage of 'pdist' function, you can refer to the following documentation link:
Best!

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by