If you are looking for the histogram of R as a function of Z, could you not
first sort the data on Z so that you now have two vectors that are sorted in
ascending (or descending) order of Z (as Craig/Chris indicated).
Then create an index of the unique zvalues
$zi=$z->uniq;
Now create the histograms for each zindex
for (1..nelem($zi))
{($xv[$_-1],$rh[$_-1])=hist($r->where($z==$zi->index($_-1)))}
I did a sample of sorted data (25 z coords of 1,2,3,4) and a random vector r
(100 points) and it gives what I expected.
You could use the value of $zi->index($_-1) to be the array index for the
xValues and rHistogram counts to identify them directly as part of the array.
Just have to remember that all of the other array values =0.
Hope this helps.
Cliff Sobchuk esn 361-8169, 403-262-4010 ext: 361-8169
Fax: 403-262-4010 ext: 361-8170
Nortel Core RF Field Support: All information is Nortel confidential.
-----Original Message-----
From: Craig DeForest [mailto:[email protected]]
Sent: June 30, 2009 9:18 AM
To: Hernán De Angelis
Cc: perldl
Subject: Re: [Perldl] Compute a distribution function from irregular data
If you don't care about your bin size, and the values are sorted by z value, a
straightforward way is:
$n = 57; # or whatever
$bounds = $z->(0:-1:$n);
$box_z = ($bounds->(1:-1) + $bounds->(0:-2))/2; $box_freq = $n/($bounds->(1:-1)
- $bounds->(0:-2));
On Jun 30, 2009, at 8:29 AM, Hernán De Angelis wrote:
> Thanks, I will think about that.
>
>
> Hernán
>
>
> 2009/6/30 Chris Marshall <[email protected]>:
>> If you sort the (z,r) data by z you can use the histogram counts to
>> calculate ranges of index values corresponding to each bin. range()
>> or other indexing operation can select the sets to calculate your
>> desired stats.
>>
>> --Chris
>>
>> Hernán De Angelis wrote:
>>>
>>> Dear PDL'ers,
>>>
>>> I am stuck with an apparently simple problem and hoped that someone
>>> in this list might have a clue.
>>>
>>> I have approx. 130000 pairs of data, z and r, which represent
>>> observations of some function r at some coordinate z.
>>> A sample of the data looks like this:
>>>
>>> z r
>>>
>>> 3311 311.817
>>> 3346 249.333
>>> 3238 353.368
>>> 3279 367.020
>>> 3347 324.405
>>> 3448 274.632
>>> 3161 310.469
>>> 3204 358.739
>>> ...... ......
>>>
>>> These observations come from a three dimensional space, and
>>> therefore there exists more than one r value for each value of the
>>> coordinate z.
>>> What I want to do is to estimate a gross distribution of r values
>>> versus z. Simple as it seems I am having troubles to set up a PDL
>>> code to compute it.
>>>
>>
>>
>
>
>
> --
>
> Hernán De Angelis
> Linux user # 397217
>
> _______________________________________________
> Perldl mailing list
> [email protected]
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl