How to calculate the number of consecutive negative values in an array before a positive appears?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Tawsif Mostafiz
il 29 Lug 2021
Commentato: Image Analyst
il 30 Lug 2021
I am writing a code, where the output is as follows:
c =
-0.4607 -0.4659 -0.5165 -0.5168 -0.5164 -0.4626 -0.4668 -0.3730 -0.3426 0.3224
0.3251 0.3270 0.3281 0.3400 -0.1816 -0.1830 -0.1851 1
I want to calculate the number of negative values before a positive value appeares for each cases. How do I do that?
0 Commenti
Risposta accettata
Image Analyst
il 29 Lug 2021
Here's another way:
c =[-0.4607 -0.4659 -0.5165 -0.5168 -0.5164 -0.4626 -0.4668 -0.3730 -0.3426 0.3224 ...
0.3251 0.3270 0.3281 0.3400 -0.1816 -0.1830 -0.1851 1]
props = regionprops(c<0, 'Area'); % Measure lengths of all runs of negative values.
results = [props.Area] % [9, 3] % Turn from structure into a vector.
3 Commenti
Image Analyst
il 30 Lug 2021
That number is simply the location minus 1. So it finds 14 at location 2 for the max, and there is one number, 1, before that location.
Più risposte (1)
Adam Danz
il 29 Lug 2021
c = [-0.4607 -0.4659 -0.5165 -0.5168 -0.5164 -0.4626 -0.4668 -0.3730 -0.3426 0.3224 ,...
0.3251 0.3270 0.3281 0.3400 -0.1816 -0.1830 -0.1851 1];
A = c(:)<0;
B = diff(find([0,A(:).',0]==0))-1;
B(B==0) = []
0 Commenti
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!