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

findgroupsparetosplitapply

I am using the below to find a Pareto Frontier of a large set of data (>1×10^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

Best Answer

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);
...