[Programación] Re: [Programación] Porque no funciona este c odigo perl...

Horacio Castellini programacion@lugro.org.ar
Wed, 19 Sep 2007 09:01:45 -0300 (ART)


--- Horacio Castellini <horacio9573@yahoo.com.ar>
escribió:


Me respondo, ya que encontré el problema...

PDL guarda los vectores en formato propio, y con ello
le asocia métodos, como perl no es OOP; no sé muy bien
como lo hace... :), pero para pasar un vetor @x a
formato PDL basta con hacer...

$Z=pdl @x;

y listo.. con 

print $z;

se imprime el vector completo...

cosas del PDL... :)

> Hola, necesito hacer un ajuste con polinomio cúbico
> de una serie de 
> datos,, lo que se me ocurrió usar es el paquete PDL
> del PERL... ahora 
> bien tomando este código como ejemplo... (funciona)
> para el uso de la 
> subrutina fitpoly1d...
> -----------------------------------------
> use PDL::LiteF;
> use PDL::Fit::Polynomial;
> $x = sequence(20)-10; #<---------- Que carajo hace
> acá???
> $y = 30-2*$x+3*$x**2-2*$x**3;
> $rand = pdl qw/65.735917 -40.510143 -122.07767
> -19.591344 -139.76362
> 106.44639 -0.30094068 -5.3129683  49.815455 
> 97.247868 -9.3130775
> 19.585472  8.5260268 -194.49596  73.822799 
> 25.628967  133.36015 
> -2.6611465 9.0335632 -0.82946383/;
> $y += $rand;
> $yfit = fitpoly1d($x,$y,4);
> ---------------------------------------------------
> 
> Como no entiendo que define $x = sequence(20)-10;
> intenté probar de una 
> manera más entendible para mi... (que no funca...!!)
> 
> ---------------------------------------------------
> use PDL::LiteF;
> use PDL::Fit::Polynomial;
> 
> for ($i=0;$i<20;$i++){
> $x[$i]=$i-10;
> $y[$i] = 30-2*$x[$i]+3*$x[$i]**2-2*$x[$i]**3;
> }
> 
> $yfit = fitpoly1d($x,$y,4);
> 
> for($i=0;$i<20;$i++){
>      print $x[$i]." ".$y[$i]."\n";
> }
> ----------------------------------------------------
> 
> Me da el error...
> Can't call method "average" without a package or
> object reference at 
> /usr/local/lib/perl/5.8.8/PDL/Fit/Polynomial.pm line
> 93.
> 
> Eso me indica que no estoy usando bien la
> sintaxis... pues en el "usage" 
> dice...
> 
> =for usage
> 
>   Usage: ($yfit, [$coeffs]) = fitpoly1d [$xdata],
> $data, $order, 
> [Options...]
> 
> =for signature
> 
> Signature: (x(n); y(n); [o]yfit(n);
> [o]coeffs(order))
> 
> donde supongo que $x, $y son vectores o que
> son...????
> 
> Alguna idea...?
> 
> 	
> 
> 	
> 		
> __________________________________________________ 
> Preguntá. Respondé. Descubrí. 
> Todo lo que querías saber, y lo que ni imaginabas, 
> está en Yahoo! Respuestas (Beta). 
> ¡Probalo ya! 
> http://www.yahoo.com.ar/respuestas 
> 
> _______________________________________________
> Programacion mailing list
> Programacion@lugro.org.ar
>
http://www.lugro.org.ar/mailman/listinfo/programacion
> 



      Las últimas noticias sobre el Mundial de Rugby 2007 están en Yahoo! Deportes. ¡Conocelas!
http://ar.sports.yahoo.com/mundialderugby