Info
Cette question est clôturée. Rouvrir pour modifier ou répondre.
average vector over selected areas
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have two vectors, one working, the second sections that I need to average in vector 1
A = randi([5 10],1,548);
B= [102 105 204 99 ]
% what i need to do x=mean(A(1:B(1)) ; x=mean(A(B(1):B(2))
how do i do this?
0 commentaires
Réponses (1)
KSSV
le 3 Fév 2020
Modifié(e) : KSSV
le 4 Fév 2020
A = randi([5 10],1,548);
B= [1 102 105 204]
% what i need to do x=mean(A(1:B(1)) ; x=mean(A(B(1):B(2))
iwant = zeros(length(B)-1,1) ;
for i = 1:length(B)-1
if B(i) < B(i+1) ;
iwant(i) = mean(A(B(i):B(i+1))) ;
else
iwant(i) = mean(A(B(i):-1:B(i+1))) ;
end
end
3 commentaires
Image Analyst
le 3 Fév 2020
Modifié(e) : Image Analyst
le 4 Fév 2020
Lev, what indexes in A do you want to average if B(i+1) is LESS than B(i)? Like 200 to 5, or 104 to 6? Do you want to take the mean of from 5 to 200 (the opposite order), inclusive? In other words, sort the numbers in ascending order first?
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!