Effacer les filtres
Effacer les filtres

problem in calculating mean from the required element of matrix??

1 vue (au cours des 30 derniers jours)
NAVNEET NAYAN
NAVNEET NAYAN le 5 Mai 2017
Modifié(e) : KL le 5 Mai 2017
I have a matrix mat6 of dimension 1-by-210. j =210. I am applying a threshold condition on mat6 and then i need to calculate the mean of next twenty elements . I want that the mean should be calculated from that first element of mat6 at which threshold condition was met at first time. But it is calculating mean from that last element of mat6 at which the threshold condition was met.
for k = 1:j-20
if mat6(k)>0.5
w=k+20;
mea = sum(mat6(1,k:w))/20;
end
end
can anyone please sort out this problem ??
Thanks
Navneet Nayan

Réponse acceptée

KL
KL le 5 Mai 2017
Modifié(e) : KL le 5 Mai 2017
k = 1;
while k <j-20
if mat6(k)>0.5
mea = mean(mat6(1,k:k+19))
k=k+20;
else
k = k+1;
end
end

Plus de réponses (1)

Jan
Jan le 5 Mai 2017
Modifié(e) : Jan le 5 Mai 2017
index = find(mat6 > 0.5, 1); % Find 1 index only
mea = mean(mat6(index:index+19));
Consider that index+19 might exceed the data size. Handle this situation e.g. by an error, e.g.:
index = find(mat6 > 0.5, 1);
if index + 19 > size(mat6, 2)
error('Index out of range in mat6');
end
  6 commentaires
NAVNEET NAYAN
NAVNEET NAYAN le 5 Mai 2017
tell me one thing Jan, if i want to use the subsequent indices for eg. i want to use the second or 3rd index, how can I proceed??
KL
KL le 5 Mai 2017
Modifié(e) : KL le 5 Mai 2017
index = find(mat6 > 0.5);
%this finds all the indices and then you could follow Andrei's command. (with the error check by Jan)
mea = mean( mat6( bsxfun(@plus,index(:)',(0:19)')) );

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by