如何转置矩阵?

时间:2015-01-30 22:50:56

标签: f# f#-3.0

我是F#的新人。

我想转置一个矩阵,我可以用任何其他语言的循环来做这个,但我想用out循环来做。

我的矩阵声明:

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

所以请帮助

1 个答案:

答案 0 :(得分:2)

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

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]))