Find intersection of two guassian curves

1 回表示 (過去 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 ExchangeProbability Distributions についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by