Hi Luis and Hernán, thank you both for commenting, I'll give it a try!

--
Eric Wheeler

On Wed, 5 Oct 2022, Luis Mochan wrote:

> Maybe rle can gelp get all sign changes, as in your second example:
> 
>      pdl> $a=pdl[ 5.3332316,  4.3332316,  3.3332316,  2.3332316,  1.3332316, 
> 0.33323163, -0.66676837, -1.6667684, -2.6667684, -3.6667684]
>      pdl> p $a
>      [ 5.3332316  4.3332316  3.3332316  2.3332316  1.3332316 0.33323163 
> -0.66676837 -1.6667684 -2.6667684 -3.6667684]
>      pdl> p $a<=>0
>      [1 1 1 1 1 1 -1 -1 -1 -1]
> 
> $a<=>0 is just the sign of the elements of $a
> 
>      pdl> p +($a<=>0)->rle
>      [6 4] [1 -1]
> 
> which means there are 6 1's followed by 4 -1's
> 
>      pdl> ($rle)=($a<=>0)->rle;
> 
> $rle has [6 4]
> 
>      pdl> p $rle((0))-1
>      5
> 
> I choose the first sign change with ((0)) and subtract 1 to get the
> index from the number of elements.
> 
> You can put everything together as in
> 
>      pdl> p +[($a<=>0)->rle]->[0]->((0))-1
>      5
> 
> You could generalize this to get further resonances in more
> complicated circuits.
> 
> Regards,
> Luis
> 
> 
> On Wed, Oct 05, 2022 at 06:50:32PM -0700, Eric Wheeler wrote:
> > Hello all,
> >
> > I'm trying to find the series resonant frequency of an RF component, which
> > is where the component reactance switches from positive to negtive or
> > vice-versa.
> >
> > Given an N-vector PDL of sorted elements, I need to know at what index it
> > switches from positive to negative.
> >
> > Here are some examples; in real life these are real values from physical
> > measurements, so they are never going to be nice round integers---but you
> > can assume they will be sorted in ascending or descending order.
> >
> > Example 1:
> >
> >   pdl> p sequence(10)-5
> >   [-5 -4 -3 -2 -1 0 1 2 3 4]
> >                ^^
> >   I need to know "index 4" is the place at which it switches.
> >
> >
> > Example 2:
> >
> >   pdl> p ((-sequence(10))+5+rand())
> >   [ 5.3332316  4.3332316  3.3332316  2.3332316  1.3332316 0.33323163 
> > -0.66676837 -1.6667684 -2.6667684 -3.6667684]
> >                                                           ^^^^^^^^^^
> >   In this floating-point example it would be "index 5"
> >
> >
> > Is there already a "PDL-broadcast-way" of doing this?
> >
> > How would you do it?
> >
> > --
> > Eric Wheeler
> >
> >
> > _______________________________________________
> > pdl-general mailing list
> > pdl-general@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/pdl-general
> >
> 
> -- 
> 
>                                                                   o
> W. Luis Mochán,                      | tel:(52)(777)329-1734     /<(*)
> Instituto de Ciencias Físicas, UNAM  | fax:(52)(777)317-5388     `>/   /\
> Av. Universidad s/n CP 62210         |                           (*)/\/  \
> Cuernavaca, Morelos, México          | moc...@fis.unam.mx   /\_/\__/
> GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16  C2DF 5F0A C52B 791E B9EB
> 
> 
> _______________________________________________
> pdl-general mailing list
> pdl-general@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pdl-general
> 
_______________________________________________
pdl-general mailing list
pdl-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-general

Reply via email to