Синтаксис срезов можно использовать для манипулирования целыми строками / столбцами матрицы:
// Create sample matrix
let m = Matrix.init 10 10 (fun x y -> float(x * 10 + y))
// Overwrite first row with the second row
m.[0..0, 0..9] <- m.[1..1, 0..9]
Синтаксис нарезки позволяет вам выбрать часть матрицы - в этом случае мы выбираем матрицу с высотой 1, но вы можете использовать функцию более широко (часть не должна быть одиночной колонка ряд). Я не думаю, что существует какая-либо существующая функция для перестановки двух строк, но вы можете использовать кусочки и реализовать ее следующим образом:
let swap (m:matrix) a b =
let tmp = m.[a..a, 1..9]
m.[a..a, 1..9] <- m.[b..b, 1..9]
m.[b..b, 1..9] <- tmp