Gambas-it

Gambas3 => Programmazione => Topic aperto da: akrobaticone - 19 Giugno 2015, 13:03:04

Titolo: [Risolto]Funzioni statistiche
Inserito da: akrobaticone - 19 Giugno 2015, 13:03:04
In Gambas si possono usare funzioni statistiche come il calcolo della deviazione standard, la media o altro?

Titolo: Re: Funzioni statistiche
Inserito da: vuott - 20 Giugno 2015, 02:42:50
Potrebbe essere il componente gb.gsl, basato sulla libreria GSL - GNU Scientific Library ( http://www.gnu.org/software/gsl/ ).

Titolo: Re: Funzioni statistiche
Inserito da: akrobaticone - 20 Giugno 2015, 08:16:14
purtroppo non ci sono le funzioni che cerco
potrei provare a chiedere sulla mailing list internazionale

Titolo: Re: Funzioni statistiche
Inserito da: akrobaticone - 20 Giugno 2015, 14:20:43
potrei creare una classe.....
Titolo: Re: Funzioni statistiche
Inserito da: vuott - 20 Giugno 2015, 21:42:24
potrei creare una classe.....
Sì. Sarebbe buona cosa.

...oppure vedere se esiste una libreria esterna installabile che possegga le funzioni che tu cerchi.
Dovresti dare un'occhiata qua, scaricare - laddove presenti - i sorgenti e vedere nei file header .h le funzioni previste.
http://www.gnu.org/software/gsl/
http://www.gnu.org/software/dap/dap.html
http://www.gnu.org/software/octave/
http://www.gnu.org/software/pspp/pspp.html
https://projects.gnome.org/guppi/
http://www.itl.nist.gov/div898/software/dataplot/homepage.htm
http://gretl.sourceforge.net/
http://www.jmulti.de/
http://www.stat.umn.edu/macanova/
http://www.r-project.org/
http://www.statmethods.net/index.html
https://rkward.kde.org/
http://www.salstat.com/
http://wald.intevation.org/projects/statist
http://directory.fsf.org/wiki/StatistX
https://code.google.com/p/vilno/


Ad ogni modo nel componente gb.gsl sono state inserite solo poche funzioni rispetto a quelle presenti nella libreria GSL.
Si potrebbe cercare nei file header (.h) della libreria:
/usr/include/gsl
http://www.gnu.org/software/gsl/manual/html_node/
https://www.gnu.org/software/gsl/manual/html_node/Function-Index.html#Function-Index
https://fossies.org/dox/gsl-1.16/index.html
le funzioni che ti servono, poi chiamarle utilizzando la libreria esterna dinamica condivisa:
/usr/lib/libgsl.so.0.17.0



Potresti cominciare con una prova facile facile:    (http://static.iobloggo.com/static/img/smiley/megmoticons/asd.gif)
Codice: gambas [Seleziona]
Public Sub Main()

  Dim p As Pointer
  Dim ver As String
  
    p = System.GetExternSymbol("libgsl:0.17.0", "gsl_version")
    
    ver = String@(Pointer@(p))
    
    Print "Libreria GSL - versione: "; ver

End



Va be'... qualcosa di più concreto utilizzando la libreria esterna:  (http://static.iobloggo.com/static/img/smiley/megmoticons/teach.gif)
Codice: gambas [Seleziona]
Library "libgsl:0.17.0"

' double gsl_stats_mean (const double data[], const size_t stride, const size_t n)
' Returns the arithmetic mean of data, a dataset of length n with stride stride.
Private Extern gsl_stats_mean(double_data As Float[], stride As Integer, n As Integer) As Float

' double gsl_stats_variance (const double data[], const size_t stride, const size_t n)
' Returns the estimated, or sample, variance of data, a dataset of length n with stride stride.
Private Extern gsl_stats_variance(double_data As Float[], stride As Integer, n As Integer) As Float

' double gsl_stats_max (const double data[], const size_t stride, const size_t n)
' Returns the maximum value in data, a dataset of length n with stride stride.
Private Extern gsl_stats_max(double_data As Float[], stride As Integer, n As Integer) As Float

' double gsl_stats_min(const double data[], const size_t stride, const size_t n)
' Returns the minimum value in data, a dataset of length n with stride stride.
Private Extern gsl_stats_min(double_data As Float[], stride As Integer, n As Integer) As Float


Public Sub Main()

  Dim data As Float[] = [17.2, 18.1, 16.5, 18.3, 12.6]
  Dim media, varianza, grande, piccolo As Float

  media = gsl_stats_mean(data, 1, 5)
  varianza = gsl_stats_variance(data, 1, 5)
  grande = gsl_stats_max(data, 1, 5)
  piccolo = gsl_stats_min(data, 1, 5)

  Print "I dati sono: ";; data[0];; data[1];; data[2];; data[3];; data[4]

  Print "La media del campione è: ";; media
  Print "La varianza stimata è: ";; varianza
  Print "Il valore più grande è: ";; grande
  Print "Il valore più piccolo è: ";; piccolo

End
Titolo: Re: Funzioni statistiche
Inserito da: akrobaticone - 21 Giugno 2015, 20:31:16
Grazie Vuott!!!
in due parole mi hai risolto il problema
adesso ci studio un po e vedo cosa tirare fuori

Grazie
Titolo: Re: [Risolto]Funzioni statistiche
Inserito da: akrobaticone - 30 Giugno 2015, 17:39:08
ho messo risolto alla discussione
le funzioni funzionano benissimo, la deviazione standard è la radice quadrata della varianza ed è quello che mi serviva
grazie