Hi Henning, Hi Alberto, thanks for the quick and comprehensive help. - I managed to implement Hennings suggestion with mapVector and zipWithVector. -- However have a type inference problem with zipVectorWith -- probably a stupid beginners mistake. (have a look below). I want to look into the matrix thing as well, but that might take a bit.
Its very good to hear that HMatrix develpment is going on and there are plans to implement more of Matlabs syntax. I see the point, that its probably not the "cleanest" way (bool to 0 & 1) but its damn convinient (laziness at its best). Maybe there could be a haskell way to implement the "lazy" matlab matrix and vector operation syntax (like explicit function for bool 2 num) Cheers Phil ######## Code import Numeric.LinearAlgebra import Graphics.Plot time = 101 |> [0, 0.1 .. 100 :: Double]; vector1 = sin(time); vector2 = vector1*0.9; posPart:: Vector Double -> Vector Double posPart v = mapVector (\a -> if a>=0 then a else 0) v v3:: Vector Double -> Vector Double -> Vector Double v3 v1 v2 = zipVectorWith(\a1 a2 -> if a1>=0 then a2/a1 else a1/a2) v1 v2 main = do -- print(v3) mplot [v3] mplot [posPart vector1] ### Compile error Couldn't match expected type `Vector Double' against inferred type `Vector Double -> Vector Double -> Vector Double' In the expression: v3 In the first argument of `mplot', namely `[v3]' In a stmt of a 'do' expression: mplot [v3] -- View this message in context: http://haskell.1045720.n5.nabble.com/Matlab-Style-Logic-Operations-ala-V1-V2-0-on-Vectors-and-Matrices-with-HMatrix-tp3312601p3314171.html Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe