Кажется, вы пытаетесь продублировать первый столбец матрицы.Например:
1.0; 2.0 1.0; 1.0; 2.0
3.0; 4.0 becomes 3.0; 3.0; 4.0
Если это правда, то код может быть:
let m = matrix [ [ 1.0; 2.0 ]
[ 3.0; 4.0 ] ]
m
|> Matrix.prependCol (m.Column 0)
ОБНОВЛЕНИЕ
Поскольку приведенное выше предположение неверно.
Таким образом, вы можете получить последовательность строк матрицы, затем преобразовать ее, как обычно, с помощью Seq.map
, и, наконец, сделать матрицу результата:
let transform f m =
m
|> Matrix.toRowSeq
|> Seq.map f
|> matrix
// or even shorter in F# idiomatic style:
let transform f =
Matrix.toRowSeq >> Seq.map f >> matrix
// test
let addElementInFront (x : Vector<float>) =
x.ToArray()
|> Array.append [| x.[0] |]
|> vector
matrix [ [ 1.0; 2.0 ]
[ 3.0; 4.0 ] ]
|> transform addElementInFront