Find zeros of numeric function

Hi all,
I have a numeric function which for the sake of simplicity resembles the following:
x = linspace(1:100) ;
y = sin(x) ;
I would like to know if there is a function in matlab where it returns the zeros of the above (presumably based on the sign change of adjacent elements).
KR,
KMT.
EDIT: The function as I say above is numeric, hence cannot be analitically expressed (i.e. sin cosing or whatever) as it is shown in my example. I used the above example just to create to numeric vectors.

 采纳的回答

You could use fzero for this. Only issue is that it returns the zero closest to a chosen start point, therefore I've put a loop in to find multiple zeros. Maybe somebody could show a more elegant way?
fun = @sin;
x=linspace(1,100);
for i=1:numel(x)
x0(i)=fzero(fun,x(i));
end
x0=unique(x0)

2 个评论

Yes, this could be one way that it can be done. However in this case i have a numeric function not an analytic one. So I only have two vectors of numbers essentially. I will edit my question to clarify this better.
Well then you could look at the below if you essentially just want to find the sign changes

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Particle & Nuclear Physics 的更多信息

提问:

2019-11-29

评论:

ME
2019-11-29

Community Treasure Hunt

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

Start Hunting!

Translated by