Average of specific values based on condition
Afficher commentaires plus anciens
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
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 Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!