0
我正在使用Numeric.LinearAlgebra
庫。這是我的代碼:Haskell - 矩陣類型之間的轉換
customConv :: Matrix Z
customConv = conv2 ((3><3)[1..]) ((1><1)[1.1])
我的問題是,我想的是,輸出將是Matrix Z
類型。
現在的類型不是Z
因爲CONV是1.1
是否有任何功能,圓矩陣的所有值,然後用此做呢?
我正在使用Numeric.LinearAlgebra
庫。這是我的代碼:Haskell - 矩陣類型之間的轉換
customConv :: Matrix Z
customConv = conv2 ((3><3)[1..]) ((1><1)[1.1])
我的問題是,我想的是,輸出將是Matrix Z
類型。
現在的類型不是Z
因爲CONV是1.1
是否有任何功能,圓矩陣的所有值,然後用此做呢?
這取決於你想如何舍入值。 如果要舍入到最接近的整數,那麼你可以使用cmap round
:
λ> cmap round $ conv2 ((3><3)[1..]) ((1><1)[1.1 :: R]) :: Matrix Z
(3><3)
[ 1, 2, 3
, 4, 6, 7
, 8, 9, 10 ]
cmap
具有以下特徵:
cmap :: (Element b, Container c e) => (e -> b) -> c e -> c b
這意味着它就像fmap
僅受限於可保持類型由hmatrix容器。
相反,如果你要裁剪的小數,你可以使用toZ
:
λ> toZ $ conv2 ((3><3)[1..]) ((1><1)[1.1 :: R]) :: Matrix Z
(3><3)
[ 1, 2, 3
, 4, 5, 6
, 7, 8, 9 ]
toZ
具有以下特徵:
toZ :: Container c e => c e -> c Z
這意味着它將東西轉換成的容器Z
。它通過裁剪小數來完成。