フィルターのクリア

How to find x value for a known Y in array?

4 ビュー (過去 30 日間)
Zeyad Elreedy
Zeyad Elreedy 2022 年 12 月 11 日
コメント済み: Zeyad Elreedy 2022 年 12 月 12 日
I have x and y arrays for a sine wave. I am trying to find the x value for when y is equal to 0, since the y array does not contain a value of 0. How can I do so?

採用された回答

Torsten
Torsten 2022 年 12 月 11 日
編集済み: Torsten 2022 年 12 月 11 日
x = 0.1:0.1:4*pi-0.1;
y = sin(x);
i = find(y(1:end-1).*y(2:end) <= 0)
i = 1×3
31 62 94
x_root = x(i)-y(i).*(x(i+1)-x(i))./(y(i+1)-y(i))
x_root = 1×3
3.1416 6.2832 9.4248
[pi,2*pi,3*pi]
ans = 1×3
3.1416 6.2832 9.4248
  4 件のコメント
Torsten
Torsten 2022 年 12 月 11 日
編集済み: Torsten 2022 年 12 月 11 日
I determine x(i) and x(i+1) between which y changes sign. Then I approximate the zero between x(i) and x(i+1) by linear interpolating between the points (x(i),y(i)) and (x(i+1),y(i+1)) and determining the x_root value as the x-value where this line crosses the x-axis.
So interp1 is implicitly used in the line
x_root = x(i)-y(i).*(x(i+1)-x(i))./(y(i+1)-y(i))
Zeyad Elreedy
Zeyad Elreedy 2022 年 12 月 12 日
I understand now. Thanks a lot!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeFunction Creation についてさらに検索

タグ

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by