Find "intersection" of data array

3 ビュー (過去 30 日間)
Christian
Christian 2018 年 9 月 3 日
コメント済み: Christian 2018 年 9 月 5 日
Hello everybody,
I would like to find the "intersections" of different data arrays. The arrays look similar this:
x=[0 1.2 2.5 3.4 4.6 5.4 6.8 7.3 8.6 9.8 7.1 8.5 9.9 10.1 11.4]
y=[100 90 80 70 65 60 55 50 45 40 40 42 44 52 62]
I would like to cut off the part under the intersection and redefine the data set. So it would be enough to find the two connection points (in this example (8.6;45) and (9.9;44)). Any ideas, how to do this? I have ran out of ideas and really need new ideas/inspiration from you guys!
Cheers, Christian
  6 件のコメント
Walter Roberson
Walter Roberson 2018 年 9 月 4 日
What would be the expected result for a case such as
9
13
10
11 12
where the data "doubles back" but does not intersect itself?
Christian
Christian 2018 年 9 月 4 日
@Walter Roberson
all of my data-sets intersect, so I won't face a case as you have described. But thanks to "Stephen Cobeldick" I found a perfect solution for my Problem -> check the answer below!

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

採用された回答

Stephen23
Stephen23 2018 年 9 月 4 日
編集済み: Stephen23 2018 年 9 月 4 日
Download and use selfintersect:
I tried it on your example values:
>> x = [0,1.2,2.5,3.4,4.6,5.4,6.8,7.3,8.6,9.8,7.1,8.5,9.9,10.1,11.4];
>> y = [100,90,80,70,65,60,55,50,45,40,40,42,44,52,62];
>> [~,~,s] = selfintersect(x,y)
s =
9 12
>> xnew = x([1:s(1),1+s(2):end])
xnew =
0.00000 1.20000 2.50000 3.40000 4.60000 5.40000 6.80000 7.30000 8.60000 9.90000 10.10000 11.40000
>> ynew = y([1:s(1),1+s(2):end])
ynew =
100 90 80 70 65 60 55 50 45 44 52 62
>> plot(x,y,'-*',xnew,ynew,'-*')
If you have multiple intersects you will have to use a loop (or some alternative) to process each row of the output matrix s.
  3 件のコメント
Stephen23
Stephen23 2018 年 9 月 4 日
@Christian: I hope that it helps. If you find selfintersects useful, then please also go and give it a rating at the page where you downloaded it from. I am sure that its author will appreciate that.
Christian
Christian 2018 年 9 月 5 日
Done! :)

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with MATLAB についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by