MATLAB: How can i determine last infection point of a vector

inflection pointMATLABmatrixsymbolicvector

I have a vector like this:
A=[1 2 3 173 174 175 176 177 178]
This vector has infection points at 3 and 173. I want to get last inflection point of it. At this example, answer should be 173.
How can i do this?
Thx.

Best Answer

  • For the type of figure as shown, simple difference will work...
    >> d=[0 diff(A)];
    >> A(d>4)
    ans =
    173
    >>
    where the '4' in the test is an arbitrary threshold -- '1' would work for the specific data set; the example would be for data with a larger or possibly slightly variable slope.
    More general solution would be to use piecewise regression to find the breakpoints -- how sophisticated solution you need would depend on the real problem characteristics besides the example toy dataset.