How to find the element of a number if that number were to be placed in an ordered list?
2 views (last 30 days)
Show older comments
For example:
list = (0:10)
number= 2.5
the element it is in-between is 3 and 4
What is the most efficient way of finding where 2.5 would lie in that list and which elements it would be in-between?
Is there a better way than doing a for loop?
for i = 1:length(list)
if number > list(length(list))
fprintf('it is greater than any the numbers')
end
if number == list(i)
fprintf('it is element %d',i)
end
if number < list(length(list))
if number > list(i)
if number < list(i+1)
fprintf('it is between element %d and %d ',i,i+1 )
end
end
end
end
0 Comments
Accepted Answer
Stephen23
on 22 Feb 2020
The robust solution:
>> ida = find(list<number,1,'last')
ida = 3
>> idb = find(list>number,1,'first')
idb = 4
0 Comments
More Answers (1)
madhan ravi
on 22 Feb 2020
Between = [find(ismember(list1,fix(2.5))), find(ismember(list1,ceil(2.5)))]
5 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!