How to find the element of a number if that number were to be placed in an ordered list?
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Stephen23
2020-2-22
The robust solution:
>> ida = find(list<number,1,'last')
ida = 3
>> idb = find(list>number,1,'first')
idb = 4
0 个评论
更多回答(1 个)
madhan ravi
2020-2-22
Between = [find(ismember(list1,fix(2.5))), find(ismember(list1,ceil(2.5)))]
5 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!