Average of specific values based on condition

2 vues (au cours des 30 derniers jours)
Filip Konecny
Filip Konecny le 18 Oct 2017
Réponse apportée : KSSV le 18 Oct 2017
Hello, is it somehow to solve efficiently the following problem? I need to average only elements which are "together". See attached picture.

Réponses (1)

KSSV
KSSV le 18 Oct 2017
data = [1 2 3 4 5 6 6.5 10 12 12.5 15 16 17 ;20 20 20 20 20 20 20 13 13 13 20 20 20]';
idx = find(diff(data(:,2))~=0) ;
pos = [[1 ;idx+1] [idx ; length(data)]] ;
iwant = zeros(size(pos,1),1) ;
for i = 1:size(pos,1)
iwant(i) = mean(data(pos(i,1):pos(i,2),1)) ;
end
There would be more elegant procedures.

Catégories

En savoir plus sur Dates and Time dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by