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.

 採用された回答

ME
ME 2019 年 11 月 29 日

0 投票

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 件のコメント

KostasK
KostasK 2019 年 11 月 29 日
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.
ME
ME 2019 年 11 月 29 日
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