sum of values in matrix with a loop

3 vues (au cours des 30 derniers jours)
zhi cheng
zhi cheng le 15 Oct 2022
Réponse apportée : Jan le 15 Oct 2022
given a 52560 x 8 double
where the first 5 columns are [ year month day hour minute ], and next 3 columns are speed of 3 different object
the data is recorced with a gap of 10 minutes
therefore, to get the same time value, I know that its row 1 and row 145 (24hours after row 1)
so, I need to sum all the speed with same time, eg
speed of A at 2022 10 15 11 10 = 3.5
speed of A at 2022 10 16 11 10 = 4.5
....
then the avg speed of A at time 11 10 = (3.5+4.5+...)/n
speed of B at 2022 10 15 11 10 = 100
speed of B at 2022 10 16 11 10 = 200
then the avg speed of B at time 11 10 = (100+200+...)/n
X=zeros(1,3);
for i = 1:length(outDates(:,5))
avgspeeds = zeros(1,3);
for j = 1:3
sum1 = outDates(i,5+j) + outDates(i+144,5+j)% 144 to get the next same time value(24hours after previous value)
end
end

Réponses (1)

Jan
Jan le 15 Oct 2022
outDates = rand(52560, 8); % Arbitrary test data
X = reshape(outDates(:, 6:8), 144, [], 3);
Y = squeeze(sum(X, 2) / size(X, 2)); % Mean over 2nd dimension

Catégories

En savoir plus sur Data Type Identification dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by