我正在使用名为Upsurge的库来处理一些与Matrix相关的函数。
其中一个功能是从矩阵创建子矩阵。使用Upsurge,可以创建一个给定像这样的范围的子矩阵。
matrix[3...4, 0...1]
我面临的情况是,我需要创建一个子矩阵,给定两个数组,指定行数和列数。
由于我可以直接传递数组,因此我尝试将它们转换为如下所示的范围。
let rows: [Int] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
let columns: [Int] = []
let rowsRange = Range(uncheckedBounds: (rows.startIndex, rows.endIndex))
let columnsRange = Range(uncheckedBounds: (columns.startIndex, columns.endIndex))
let subMatrix = matrix[rowsRange, columnsRange]
// Cannot subscript a value of type 'Matrix<Double>' with an index of type '(Range<Int>, Range<Int>)'
但是我收到了以下错误。
无法下标'Matrix&lt;类型的值双&gt;'索引类型为'(范围&lt; Int&gt;,范围&lt; Int&gt;)'
这是将数组转换为范围的正确方法吗?或者我在这里做错了什么?