Skip to content

Instantly share code, notes, and snippets.

@mdmarek
Created May 12, 2012 01:42
Show Gist options
  • Save mdmarek/2663634 to your computer and use it in GitHub Desktop.
Save mdmarek/2663634 to your computer and use it in GitHub Desktop.
Read matrix from CSV file and convert to Matrix (Hmatrix)
{-# LANGUAGE OverloadedStrings #-}
-- | Converts a matrix represented as text to Hmatrix Matrix. Used GHC 7.4, Hmatrix 0.14.
module Main where
import qualified Data.Text as T
import qualified Data.Text.IO as TIO
import Data.Text (Text,splitOn,lines)
import Data.Text.Read (double)
import Data.Packed.Matrix (Matrix,fromLists)
asMatrix :: [[Text]] -> Matrix Double
asMatrix xs = let f = map (fix.double) in fromLists $ map f xs
fix :: Either String (Double,Text) -> Double
fix e = case e of
Right (d,t) -> d
_ -> 0.0
main :: IO ()
main = do
contents <- TIO.readFile "data.txt"
putStr $ show $ asMatrix $ map (splitOn ",") $ T.lines contents
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment