フィルターのクリア

Find intersection of two guassian curves

2 ビュー (過去 30 日間)
Trisha Kibaya
Trisha Kibaya 2018 年 9 月 11 日
編集済み: jonas 2018 年 9 月 12 日
Hi all these are my two curves:
y1 = p(1)*pdf(n1,xgrid); hold on; plot (xgrid, y1,'b'); % hold off
y2 = p(2)*pdf(n2,xgrid); hold on; plot (xgrid, y2,'r'); % hold off
I need to find the exact x coordinates where this two lines meet.
I tried using:
index_intersection = find(y1 == y2);
but it gives me index_intersection =
1×0 empty double row vector
I also tried:
idx = find (y1 - y2 < eps, 1);
but still didn't get the right coordinates.
Please, is there another alternative? I read online that I could use fzero, but I haven't understood how to use the syntax. Thanks in advance.
  3 件のコメント
jonas
jonas 2018 年 9 月 11 日
Check out InterX on FEX
Trisha Kibaya
Trisha Kibaya 2018 年 9 月 11 日
numComponents=2;
paramEsts = fitgmdist(data(:),numComponents);
p = paramEsts.ComponentProportion;
and p has two values.
p =
0.3915 0.6085

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

採用された回答

jonas
jonas 2018 年 9 月 11 日
編集済み: jonas 2018 年 9 月 11 日
If you have only one intersection, then you can just find the minimum difference
[~,idx] = min(abs(y1 - y2))
This will however always output a value even when there is no intersection. Also, the accuracy depends on the resolution of your x-vector, where higher resolution yields better accuracy (this is true for most methods). I always recommend InterX from FEX for finding intersections. It interpolates your data per default for high accuracy.
  2 件のコメント
Trisha Kibaya
Trisha Kibaya 2018 年 9 月 12 日
Please, pardon my ignorance but is FEX another MathWorks product? Cause i don't have that
jonas
jonas 2018 年 9 月 12 日
編集済み: jonas 2018 年 9 月 12 日
Sorry, FEX is short for fileexchange where you can find open source user-submitted functions. Follows the link in my answer, download and put it in your matlab search path

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

その他の回答 (1 件)

KSSV
KSSV 2018 年 9 月 11 日
編集済み: KSSV 2018 年 9 月 11 日
tol = 10^-3 ; % Change this if required
idx = abs(y1-y2)<=tol ;
  3 件のコメント
KSSV
KSSV 2018 年 9 月 11 日
To compare two flottant numbers it is suggested to subtract check for inequality with tolerance, rather then using ==.
Trisha Kibaya
Trisha Kibaya 2018 年 9 月 12 日
Thanks a lot

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

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by