【发布时间】:2021-06-08 03:51:28
【问题描述】:
我在 F# 中有一个函数,我希望它从一个方阵中创建一个方子矩阵。我需要做的是从原始矩阵中删除一行和一列并将其转换为子矩阵。这是我到目前为止所尝试的:
/// <param name="A">An N-by-N matrix.</param>
/// <param name="i">The index of the row to remove.</param>
/// <param name="j">The index of the column to remove.</param>
/// <returns>The resulting (N - 1)-by-(N - 1) submatrix.</returns>
static member SquareSubMatrix (A : Matrix) (i : int) (j : int) : Matrix =
let m_rows = A.M_Rows
let n_cols = A.N_Cols
let toarr = A.ToArray()
let retval = toarr.[0..m_rows-1,0..n_cols-1]
Matrix retval
M_Rows 和 N_Cols 只是自定义函数,用于获取矩阵的行数和列数,ToArray 函数顾名思义。
所以我尝试将矩阵转换为数组,以便可以对其进行切片,然后将其转换回来,但我不确定如何从数组中切出特定的行/列。上面的代码只是返回输入矩阵,因为它没有对任何东西进行切片,导致我不知道该怎么做。
【问题讨论】:
标签: arrays matrix vector f# slice