Given a vector a=[1,2, 3.2, 4, 5] and an element x=3 In vector a, how to find the exact entry which is bigger than x?
If you want to compute these positions for multiple values of x, you will be better off using histc instead of looping through all values of x, as in terms of complexity histc will be O(n*log(n)), while the loop approach will be O(n^2):
[~,I] = histc(x, [-Inf; a(:); Inf]);
I(x==inf) = numel(a)+1;
This will work for sorted a and arbitrary x. As an example:
a = 1:10;
x = [5.5, 0.1, 2.3];
Will yield:
I = [6 1 3]
I'm not sure what you mean by "exact" entry. This will give you indices of all the values greater than x:
indices = find(a > x);
Assuming a is already sorted, this will give you the index of the first one (i.e. the smallest value greater than x):
index = find(a > x,1);