Re: Sorting into bins
- To: mathgroup at smc.vnet.net
- Subject: [mg119668] Re: Sorting into bins
- From: Dana DeLouis <dana.del at gmail.com>
- Date: Fri, 17 Jun 2011 00:07:04 -0400 (EDT)
... I wish to sort a list of {{x,y}...} values into uneven bins using
the x values
Hi. Not sure, but here's one general method.
A general function that divides you x values based on size. (I'll use
Log10, but you can use your function here.).
f[x_]:=Log10[x]//Floor
Some Random data of length 2,3,& 4
I suggest Sorting the list here as it makes the code later a little
easier.
t=RandomInteger[{1,2000},{10,2}]//Sort;
t//MatrixForm
(18 592
49 1441
67 672
670 713
1318 1827
1417 1487
1437 586
1594 40
1600 1908
1786 1564
)
GatherBy[t,f[First[#]]&]
{
{{18,592},{49,1441},{67,672}},
{{670,713}},
{{1318,1827},{1417,1487},{1437,586},{1594,40},{1600,1908},{1786,1564}}
}
As you see, the bins are based on digit lengths of 2, 3 or 4.
You'll have to think of your own function here.
= = = = = = = = = =
HTH : >)
Dana DeLouis
$Version
8.0 for Mac OS X x86 (64-bit) (November 6, 2010)
On Jun 15, 7:19 am, Hugh Goyder <h.g.d.goy... at cranfield.ac.uk> wrote:
> I wish to sort a list of {{x,y}...} values into uneven bins using the
> x values to locate the bin but have the bins contain the y values.
> This seems like an application for BinLists but it only seems to work
> on a list of x values. The motivation is to give a spectra in terms of
> 1/3 octaves which is a standard presentation in acoustics. Below I
> construct the bin center frequencies cf, the bin boundaries bb and
> generate a time history th, spectra, yy and corresponding frequencies
> xx. How do I then sort the list into my bins?
>
> Thanks
> Hugh Goyder
>
> cf = Table[(1/100.) Round[100 (1000/1024) 2^n], {n, 1, 15, 1/3}];
> bb = Table[Sqrt[cc[[i]]*cc[[i + 1]]], {i, 1, Length[cc] - 1}];
> sr = 60000.;
> th = Table[y, {y, 0, 1, 1/sr}]; n = Length[th];
> yy = Take[
> Fourier[th, FourierParameters -> {1, -1}], {1, Ceiling[n/2]}];
> xx = Table[f, {f, 0, sr/2, sr/n}];
> data = Transpose[{xx, yy}];