フィルターのクリア

using findgroups and splitapply (or an alternative) to find the minimu value in a range of values

2 ビュー (過去 30 日間)
I am using the below to find a Pareto Frontier of a large set of data (>1x10^8). The below basically pulls the minimum value of B from each distinct value of A. I am looking for help in expanding to the find the minimum value of B within a range of A values.
G = findgroups(A);
C = 1:numel(B);
OutC = splitapply(@(b,c) {c(b==min(b))}, B, C, G);
Out = cat(2, OutC{:}).';
The attached plot is the results, and is clearly NOT the actual pareto frontier. How can I implement this "binning" approach to find the minimum value of B in a range of A? Attached a subset of the data due to file size limitations
  2 件のコメント
Image Analyst
Image Analyst 2018 年 6 月 29 日
Wow - what an interesting concept - I had to look it up because I'd not heard of it before. More interesting than most questions we see here.
Anyway, have you considered the boundary() function if you just want to find some kind of outer boundary for the scattered points?
Still Learning Matlab
Still Learning Matlab 2018 年 7 月 2 日
I am looking only to identify the points closest to the x-axis on this figure such that for a mall range of A values, I identify the point with the minimum value of B.

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

採用された回答

Jeff Miller
Jeff Miller 2018 年 6 月 30 日
Couldn't you just form a new variable Agrp which has the A values grouped into whatever bins you want? Then repeat what you are already doing, but use Agrp instead of A. As a crude example,
Agrp = round(A);
G = findgroups(Agrp);
...

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePulse and Transition Metrics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by