zero crossing and inflection point

1 次查看(过去 30 天)
can someone please in detail explain to me what this simple line of coding is doing in order to calculate zero crossing. I thought you needed the second derivative of the function to do this. Thank you
zci = @(v) find(v(:).*circshift(v(:), [-1 0]) <= 0);

采纳的回答

John D'Errico
John D'Errico 2016-11-1
Why would you possibly need the second derivative to locate a zero crossing?
All this does is look for consecutive elements of a vector that have different signs.
If you really want to see what it does, read the help for circshift. My re-writing existing help will be a waste of time. Given that, what property do two numbers have if they have different signs? Answer: the product will ALWAYS be negative. So all that line does is look for consecutive elements with opposite signs. (Zero will do too.)

更多回答(0 个)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by