Check values under a certain threshold with an undefined window
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
bfenst
le 13 Avr 2018
Réponse apportée : Image Analyst
le 13 Avr 2018
Hello all,
I am new to Matlab. I have a large vector called A (over 400000 values). I would like to find the maximum value of that vector then look for values that are 10 % around the maximum.
Here is an example:
A=[9 10 47 50 49 48 2 46];
mymax=max(A); % in this case mymax=50
mincondition=mymax*0.9; % mincondition=45
Then I should be able to get all values around A(4)=50 that are over mincondtion. The window of considered values stops when mincondition is no longer surpassed. In this case, the results would be:
res=[47 50 49 48];
Can anyone please help me?
Thank you.
2 commentaires
David Fletcher
le 13 Avr 2018
Why isn't the 46 (last element) included in res? (sorry I didn't really understand what you mean by 'the window of considered values stops when mincondition is no longer surpassed' - I am just assuming that you want everything from A that is over mincondition)
Réponse acceptée
David Fletcher
le 13 Avr 2018
A=[9 10 47 50 49 48 2 46];
mymax=max(A); % in this case mymax=50
mincondition=mymax*0.9; % mincondition=45
indexer=A>mincondition
[start,stop]=regexp(char(indexer+48),'1+')
res=A(indexer(1:stop(1)))
It's probably worth checking it works thoroughly - I kept getting disturbed by people actually wanting me to do some work while I was writing it.
Plus de réponses (1)
Image Analyst
le 13 Avr 2018
Here's one way using morphological reconstruction:
A = [9 10 47 50 49 48 2 46];
mask = A >= 0.9 * max(A)
indexes = imreconstruct(A == max(A), mask) % Requires Image Processing Toolbox.
finalValues = A(indexes)
0 commentaires
Voir également
Catégories
En savoir plus sur Debugging and Analysis dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!