如何解决打印存储为SparseMatrixStructure的矩阵
我正在使用稀疏矩阵操作使用Apple的Accelerate框架。
我因此创建了一个稀疏矩阵:
var values: Array<Double> = [0.125,0.08,-0.01,0.405,-0.02,0.005]
var rowIndices: [Int32] = [0,1,2,// Column 0
3,4,// Column 1
5 ] // Column 3
var columnStarts = [0,3,5,6]
let structure: SparseMatrixStructure = rowIndices.withUnsafeMutableBufferPointer { rowIndicesPtr in
columnStarts.withUnsafeMutableBufferPointer { columnStartsPtr in
var attributes = SparseAttributes_t()
attributes.triangle = SparseLowerTriangle
attributes.kind = SparseSymmetric
return SparseMatrixStructure(
rowCount: 3,columnCount: 3,columnStarts: columnStartsPtr.baseAddress!,rowIndices: rowIndicesPtr.baseAddress!,attributes: attributes,blockSize: 1
)
}
我正在打电话分解矩阵:
let llt: SparSEOpaqueFactorization_Double = values.withUnsafeMutableBufferPointer { valuesPtr in
let a = SparseMatrix_Double(
structure: structure,data: valuesPtr.baseAddress!
)
return SparseFactor(SparseFactorizationCholesky,a)
}
我真的需要检查分解的结果-即打印出结果。甚至看不到任何获得结果的方法,更不用说将其打印出来了。
有人可以帮助我了解如何检索结果并打印结果吗?
解决方法
最终自己解决了这个问题。我用过:
let subfactors = SparseCreateSubfactor(SparseSubfactorL,llt)
从分解中提取一个子因子对象,然后将子因子乘以单位矩阵得到分解。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。