File Exchange

image thumbnail

Find values in a vector or function

For a function y=f(x), this script looks for all the "x" values for a desired value of "y" (y0).



View License

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.

Comments and Ratings (2)

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 :)


arnold (view profile)

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


Little optimization


The algorithm remains being the same, but I have made some little changes.
- When the function starts, it will ask for the value that you are looking for.
- It draws a plot to help you to understand the values and positions that the function found.

MATLAB Release
MATLAB 7.9 (R2009b)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video