关于f#:如何转置矩阵?

How to transpose a matrix?

我是F#的新手。

我想转置矩阵,我可以像使用任何其他语言一样使用循环来完成此操作,但是我想使用out循环来完成。

我的矩阵声明:

1
let BuildEmptyBord:BordCell[][]=[|for i in 1..3->[|for i in 1..3->BordCell.Empty|]|]

所以请帮助


对于矩阵作为锯齿状数组,可以使用Array.init函数,然后重新创建交换了尺寸的矩阵,如下所示:

1
2
3
4
5
let transpose (matrix:_ [][]) =
    if matrix.Length = 0 then failwith"Invalid matrix"  
    Array.init matrix.[0].Length (fun i ->
        Array.init matrix.Length (fun j ->
            matrix.[j].[i]))