How to get the second lowest value in the vector

5 Ansichten (letzte 30 Tage)
RAJAN PRASAD
RAJAN PRASAD am 13 Dez. 2017
Beantwortet: Guillaume am 13 Dez. 2017
8241.78332137873 + 0.00000000000000i
38.9067789454279 + 0.00000000000000i
-1.83201864618279 + 0.00000000000000i
1.79315922840514 + 0.00000000000000i
-0.997840962168844 + 0.0656765880503442i
-0.997840962168844 - 0.0656765880503442i
0.995473996970605 + 0.0950343167256255i
0.995473996970605 - 0.0950343167256255i
0.557674959456530 + 0.00000000000000i
-0.545845972735913 + 0.00000000000000i
0.0257024618089396 + 0.00000000000000i
0.000121332964102069 + 0.00000000000000i
I am getting data like this in which the negative real value which is falling between -1 and 0 that is -0.545845972735913 i have to extract.In loop everytime i get this value which falls between -1 and 0 how to extract it.another one is
7992.04304121297 + 0.00000000000000i
29.5741862804080 + 0.00000000000000i
2.79371824910742 + 0.00000000000000i
-1.45521487567079 + 0.00000000000000i
0.997843485528069 + 0.0656382387725411i
0.997843485528069 - 0.0656382387725411i
-0.998639864116128 + 0.0521384867259113i
-0.998639864116128 - 0.0521384867259113i
-0.687183739469949 + 0.00000000000000i
0.357945902497281 + 0.00000000000000i
0.0338132718336987 + 0.00000000000000i
0.000125124451280362 + 0.00000000000000i
in this one is -0.687183739469949

Antworten (1)

Guillaume
Guillaume am 13 Dez. 2017
I'm not sure I've understood what you want. If you want the 2nd lowest value greater than -1:
In <R2017b:
realvalues = real(yourvector);
[~, idx] = sort(realvalues (realvalues >= -1 & realvalues =< 0));
lowest2nd = yourvector(idx(2));
In R2017b:
min2 = mink(yourvector(real(yourvector) >= -1 & real(yourvector) =< 0), 2, 'ComparisonMethod', 'real')
lowest2nd = min2(2);

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by