
http://ccnmtl.columbia.edu/projects/qmss/the_chisquare_test/about_the_chisqu... given two matrices, Prelude Data.Matrix.Dense Data.Vector.Dense> m listMatrix (2,2) [46.0,37.0,71.0,83.0] Prelude Data.Matrix.Dense Data.Vector.Dense> es listMatrix (2,2) [40.9746835443038,42.0253164556962,76.0253164556962,77.9746835443038] how can I flatten them to do: [ (o-e)^2 / e | o <- m, e <- es ] or use a function that will apply a given function to every corresponding elements of 2 or n matrices and create a result matrix? If I should use a different matrix type or library altogether, please specify which one and how ^__^" Best Regards, Cetin Sert

Using hmatrix-static: import Numeric.LinearAlgebra.Static m = [$mat| 46.0,37.0; 71.0,83.0 |] es = [$mat| 40.9746835443038,42.0253164556962; 76.0253164556962,77.9746835443038 |] chisquare = sum . toList . flatten $ (m - es)^2 / es ::Double -- > 1.8732940252518542 Cetin Sert wrote:
http://ccnmtl.columbia.edu/projects/qmss/the_chisquare_test/about_the_chisqu...
given two matrices,
Prelude Data.Matrix.Dense Data.Vector.Dense> m listMatrix (2,2) [46.0,37.0,71.0,83.0] Prelude Data.Matrix.Dense Data.Vector.Dense> es listMatrix (2,2) [40.9746835443038,42.0253164556962,76.0253164556962,77.9746835443038]
how can I flatten them to do: [ (o-e)^2 / e | o <- m, e <- es ]
or use a function that will apply a given function to every corresponding elements of 2 or n matrices and create a result matrix?
If I should use a different matrix type or library altogether, please specify which one and how ^__^"
Best Regards, Cetin Sert _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe

Very cool! We need an hmatrix-static tutorial! aruiz:
Using hmatrix-static:
import Numeric.LinearAlgebra.Static
m = [$mat| 46.0,37.0; 71.0,83.0 |]
es = [$mat| 40.9746835443038,42.0253164556962; 76.0253164556962,77.9746835443038 |]
chisquare = sum . toList . flatten $ (m - es)^2 / es ::Double -- > 1.8732940252518542
Cetin Sert wrote:
http://ccnmtl.columbia.edu/projects/qmss/the_chisquare_test/about_the_chisqu...
given two matrices,
Prelude Data.Matrix.Dense Data.Vector.Dense> m listMatrix (2,2) [46.0,37.0,71.0,83.0] Prelude Data.Matrix.Dense Data.Vector.Dense> es listMatrix (2,2) [40.9746835443038,42.0253164556962,76.0253164556962,77.9746835443038]
how can I flatten them to do: [ (o-e)^2 / e | o <- m, e <- es ]
or use a function that will apply a given function to every corresponding elements of 2 or n matrices and create a result matrix?
If I should use a different matrix type or library altogether, please specify which one and how ^__^"
Best Regards, Cetin Sert _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (3)
-
Alberto Ruiz
-
Cetin Sert
-
Don Stewart