How to quickly find the position of a value in a sorted column data?
25 views (last 30 days)
Show older comments
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!
0 Comments
Accepted Answer
Star Strider
on 14 Mar 2018
Try this:
V = linspace(-80, 45, 150); % Create Vector
B = -78;
idx = find(V <= B, 1, 'last');
Result = [idx idx+1];
2 Comments
More Answers (0)
See Also
Categories
Find more on Shifting and Sorting Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!