How to Envelope a Dataset?
이전 댓글 표시
I have a series of data points (in some cases they're in the order of over 1000 points), after some data processing and iterations i.e. sorting, duplicate elimination etc. they will look like a numerical array like "B". B(:,1) will represent the data set on the X-Axis and B(:,2) is the corresponding Y-Axis data.
B =
20 0.01
34 0.017
40 0.02
56 0.5
71 0.2
71 0.5
80 0.04
100 0.075
200 0.2
260 0.04
400 0.5
800 0.04
2000 0.01
2000 0.02
*Please note that there are 2 corresponding values for 71.
I'd like to create an array that envelopes these data to represent the characteristics of "B". I came up with the enveloping dataset manually (which is acceptable for this case). I called this enveloped data set, "Enveloped":
Enveloped =
20 0.01
30 0.02
45 0.5
400 0.5
2000 0.02
I have uploaded a figure at the following link; it can visually show you what I'm looking for:
The Red plot represents "B" and the blue plot is the "Enveloped". I'm looking to recreate "Enveloped" in Matlab. Any help is greatly appreciated!
채택된 답변
추가 답변 (1개)
Junaid
2011년 12월 16일
2 개 추천
Dear Aviator,
Actually your problem is quite related to finding the Convex hull. The data points you have shown are not good enough so that I could show you example visuall. But take a look at this.
I hope this will solve your problem. You have to find the convex hull that you are calling an envelope :-). Do let me know if you understood your question wrong.
댓글 수: 3
Aviator
2011년 12월 16일
Sean de Wolski
2011년 12월 16일
Use accumarray with the function max() to group your data and keep the ones you want. (histc or unique to get the indices to feed accumarray)
Aviator
2011년 12월 17일
카테고리
도움말 센터 및 File Exchange에서 Circuit Envelope Simulation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!