How to quickly find the position of a value in a sorted column data?

13 visualizzazioni (ultimi 30 giorni)
I have a list of ascendingly sorted data A = [-80, -79.6, -79.2, -77, 65,... 45]. If there is a value B, how do I quickly find the indices of the two values with one smaller than that and the very next one larger than that? For example, if B=79.8, the two indices will be 1 and 2. If B = 78, the two indices should be 3 and 4.
I know how to write a loop to process this, but my database is huge. As a result, it would take a huge amount of time to process.
Thanks!

Risposta accettata

Star Strider
Star Strider il 14 Mar 2018
Try this:
V = linspace(-80, 45, 150); % Create Vector
B = -78;
idx = find(V <= B, 1, 'last');
Result = [idx idx+1];

Più risposte (0)

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by