8.5.2. MDOMatrix¶
- 
class MDOMatrix¶
 表示具有double值的矩阵类。通常用于与矩阵属性交互
静态方法
用索引和值构造一个稀疏矩阵
构造一个包含行索引、列索引和值的稀疏矩阵
构造压缩稀疏列 (CSC) 格式的矩阵
构造压缩的稀疏行 (CSR) 格式化矩阵
构造一个稠密矩阵
用 std::initializer_list 构造一个密集矩阵
构造一个矩阵内部元素全为 value 的矩阵
构造一个主对角线元素都是1的方阵
构造一个值全为1的矩阵
用 std::initializer_list 构造稀疏矩阵
构造一个元素全为0的矩阵
方法
该矩阵中包含的列数
检索该矩阵中所有非零元素的值
检索该矩阵中所有非零元素的索引
检索该矩阵中非零元素的数量
该矩阵的行数
- 
MDOMatrix coo(int rows, int cols, int nonzeros, int *ind, double *data)¶
 用索引和值构造一个稀疏矩阵
- 参数
 int rows -- 行数
int cols -- 列数
int nonzeros -- 非零元素的数量
int* ind -- 所有非零元素的索引
double* data -- 所有非零元素的值
- 返回
 新创建的矩阵
- 
MDOMatrix coo(int rows, int cols, int nonzeros, int *row, int *col, double *data)¶
 构造一个包含行索引、列索引和值的稀疏矩阵
- 参数
 int rows -- 行数
int cols -- 列数
int nonzeros -- 非零元素的数量
int* row -- 所有非零元素的行索引
int* col -- 所有非零元素的列索引
double* data -- 所有非零元素的值
- 返回
 新创建的矩阵
- 
MDOMatrix csc(int rows, int cols, int nonzeros, int *ptr, int *ind, double *data)¶
 构造压缩稀疏列 (CSC) 格式的矩阵
- 参数
 int rows -- 行数
int cols -- 列数
int nonzeros -- 非零元素的数量
int* ptr -- 矩阵中包含的列的 'ind' 中的开始索引
int* ind -- 所有非零元素的行索引
double* data -- 所有非零元素的值
- 返回
 新创建的矩阵
- 
MDOMatrix csr(int rows, int cols, int nonzeros, int *ptr, int *ind, double *data)¶
 构造压缩的稀疏行 (CSR) 格式化矩阵
- 参数
 int rows -- 行数
int cols -- 列数
int nonzeros -- 非零元素的数量
int* ptr -- 矩阵中包含的行的 'ind' 中的开始索引
int* ind -- 所有非零元素的列索引
double* data -- 所有非零元素的值
- 返回
 新创建的矩阵
- 
MDOMatrix dense(int rows, int cols, double *data)¶
 构造一个稠密矩阵
- 参数
 int rows -- 行数
int cols -- 列数
double* data -- 所有元素的值。它应该至少有 行数*列数 个元素。
- 返回
 新创建的矩阵
- 
MDOMatrix dense(int rows, int cols, std::initializer_list<double> data)¶
 用 std::initializer_list 构造一个密集矩阵
- 参数
 int rows -- 行数
int cols -- 列数
std::initializer_list<double> data -- 所有元素的值。它应该至少有 行数*列数 个元素
- 返回
 新创建的矩阵
- 
MDOMatrix full(int rows, int cols, double value)¶
 构造一个矩阵内部元素全为 value 的矩阵。
- 参数
 int rows -- 行数
int cols -- 列数
double value -- 返回矩阵中所有元素的值
- 返回
 新创建的矩阵
- 
MDOMatrix sparse(int rows, int cols, std::initializer_list<int> i, std::initializer_list<int> j, std::initializer_list<double> data)¶
 用 std::initializer_list 构造稀疏矩阵
- 参数
 int rows -- 行数
int cols -- 列数
std::initializer_list<int> i -- 所有非零元素的行索引。它应该与 j 和 data 长度相同
std::initializer_list<int> j -- 所有非零元素的列索引。它应该与 i 和 data 长度相同
std::initializer_list<double> data -- 所有元素的值。它应该与 i 和 j 长度相同
- 返回
 新创建的矩阵
- 
int cols()¶
 该矩阵中包含的列数
- 返回
 该矩阵中包含的列数
- 
const double *data()¶
 检索该矩阵中所有非零元素的值
- 返回
 该矩阵中所有非零元素的值
- 
const int *indices()¶
 检索该矩阵中所有非零元素的索引
- 返回
 所有非零元素的索引,其长度可以通过 nonzeros() 知道。 第i个元素的坐标可以通过以下公式计算: '''cpp row[i] = indices[i] / cols(); col[i] = indices[i] % cols(); '''
备注
返回的数组的顺序可能无法保证
- 
int nonzeros()¶
 检索该矩阵中非零元素的数量
- 返回
 非零元素的总数
- 
int rows()¶
 该矩阵的行数
- 返回
 该矩阵的行数
- 
MDOMatrix coo(int rows, int cols, int nonzeros, int *ind, double *data)¶