Given a desired value "y0", this function finds all the elements "y" in a vector whose values are the closest to "y0" in the whole vector, and also the positions "xi". So, the output is a set of points [xi,y0] given in two vectors, one for the values and another one for the positions.
The inputs are:
-Value that you want to find in the vector "y0".
The outputs are:
-The closest values to "y0" in the function (by means the real "y" values).
-The position "xi" of those "y" values.
I hope it is useful for all of you. If you have any suggestion, please, tell me.
Adrian Lara-Quintanilla (2020). Find values in a vector or function (https://www.mathworks.com/matlabcentral/fileexchange/31103-find-values-in-a-vector-or-function), MATLAB Central File Exchange. Retrieved .
Thanks, I appreciate your feedback. I have solved that just yielding the closest value of those in the vector.
Anyway, this is a very simple function. I am sure it can be optimized a lot, but it works very well for my purposes and I decided to share it with the people. I do not know how the "experts" in Matlab deals with this, but I need to use this function in almost everything I do... :)
Again, thanks for helping me to improve :)
If I understand correctly your function can only find anything if there is at least one value <= AND one >= y. This is not necessarily the case for any given function. This is suboptimal. The function should always find at least the nearest value. imho
Yields the closest value in case that the wanted value is not in the range of the input vector
The algorithm remains being the same, but I have made some little changes.