如何转置矩阵?

How to transpose a matrix?

我是 F# 的新手。

我想转置一个矩阵,我可以像在任何其他语言中一样用循环来做,但我想用输出循环来做。

我的矩阵声明:

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

所以请帮忙

对于作为锯齿状数组的矩阵,您可以使用 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]))