偶数の行と列を持つ行列の各2x2部分行列の合計を求める必要があります。行列から2x2のすべての部分行列の各要素の和
たとえば、4x4行列(1)があります。この関数は(私は与えられた行列は、nおよびmがさえある任意のn×mの行列もできることに注意したいと思います)、次のようにそれを計算する必要があります。
(1): [ [1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10,11,12],
[13,14,15,16] ]
sum2x2 of (1):
1. 1+2+5+6 = 14
2. 3+4+7+8 = 22
3. 9+10+13+14 = 46
.
.
result: [14, 22, 46, ...]
私が作成しData.Matrixとsubmatrix
を使用したいですこのリスト。私はこの関数を書い始めているが、私はここから続行する方法がわからない
sum2x2 :: Matrix Double -> [Double]
:次のような
sum2x2 :: Matrix Double -> [Double]
sum2x2 m = if even (ncols m) && even (nrows m)
then what?
else error "sum2x2 takes only even matrices"
submatrix
作品:
-- | /O(1)/. Extract a submatrix given row and column limits.
-- Example:
--
-- > (1 2 3)
-- > (4 5 6) (2 3)
-- > submatrix 1 2 2 3 (7 8 9) = (5 6)
submatrix :: Int --^Starting row
-> Int --^Ending row
-> Int --^Starting column
-> Int --^Ending column
-> Matrix a
-> Matrix a
だから私はその概念を持っています。リストの理解を使ってHaskellでこれを実装するにはどうすればよいですか?
'Data.Matrix'パッケージがいい[分割ブロック(https://hackage.haskell.org/package/matrix-0.3.5.0/docs/Data-Matrix.html#g:8)機能を含みます「サブマトリックス」のように。彼らはこの仕事のための非常に便利なツールです。 – Redu