MATLAB: How to find interpolated values when there are multiple

interp1interpolation

I'm looking to find points where a vector crosses a certain threshold. I have been using interp1 to try to accomplish this but it does not recognise multiple solutions.
for example:
a = [1 2 3 5 8 4];
b = interp1(a, 1:length(a), 6);
returns 4.3333
This is one of the correct answers, but I am looking to get this to return both points where the interpolated value would be 6 (4.33 and 5.5). Any help much appreciated!

Best Answer

interp1 assumes a single valued functional relationship. You cannot use interp1 to do what you wish to do.
Instead, use a tool like Doug Schwarz's intersections , downloaded from the file exchange.
a = [1 2 3 5 8 4];
intersections(1:length(a),a,[1 6],[6 6])
ans =
4.3333
5.5