|
NANA
|
简单矩阵类 更多...
#include <matrix.h>
Public 类型 | |
| enum | DecompositionMethod { GaussiaJordan } |
| 枚举矩阵的各种分解方法 更多... | |
Public 成员函数 | |
| Matrix (int rows, int cols) | |
| 构造函数,主动申请与管理内存 更多... | |
| Matrix (const Matrix &M) | |
| 实现复制构造函数 更多... | |
| Matrix (int m, int n, NAFLOAT const *val) | |
| 复制构造函数 更多... | |
| virtual | ~Matrix () |
| 矩阵的析构函数,释放申请的内存 更多... | |
| int | cols () const |
| 获取矩阵的列数 更多... | |
| int | rows () const |
| 获取矩阵的行数 更多... | |
| Matrix | getMat (int i1, int j1, int i2=-1, int j2=-1) |
| 获取当前矩阵的子矩阵 更多... | |
| void | setMat (const Matrix &M, int i, int j) |
| 设置当前矩阵 更多... | |
| void | fill (const NAFLOAT &value) |
| 用value填充Matrix的全部内容 更多... | |
| NAFLOAT ** | getValPtr () const |
| 获取值的指针 更多... | |
| const NAFLOAT ** | getConstValPtr () const |
| 获取常量指针 更多... | |
| Matrix | T () const |
| 实现矩阵的转置 更多... | |
| Matrix & | operator= (const Matrix &M) |
| 等于时 更多... | |
| const NAFLOAT * | operator[] (int row) const |
| 返回第row行的起始指针 更多... | |
| Matrix | operator+ (const Matrix &B) |
| 实现矩阵的加法 更多... | |
| Matrix | operator- (const Matrix &M) |
| 实现矩阵的减法 更多... | |
| Matrix | operator* (const Matrix &B) |
| 实现矩阵的乘法 更多... | |
| Matrix | dot (const Matrix &B) const |
| 实现矩阵的点乘 更多... | |
| Matrix | dot (NAFLOAT b) const |
| 矩阵的点乘 更多... | |
| Matrix | inv (int flag=GaussiaJordan) const |
| 实现矩阵的求逆 更多... | |
| NAFLOAT | det () const |
| 求矩阵行列式的值 更多... | |
| int | rank () const |
| 求矩阵的秩 更多... | |
| void | create (int rows, int cols) |
| 申请内存 更多... | |
| void | release () |
| 释放已申请的内存 更多... | |
静态 Public 成员函数 | |
| static void | setMatrixEye (Matrix &mat, const int m) |
| 将当前矩阵设置为单位矩阵 更多... | |
| static void | LU (const Matrix &A, Matrix &L, Matrix &U) |
| 实现矩阵的LU分解 更多... | |
| static void | QR (const Matrix &A, Matrix &Q, Matrix &R) |
| 基于豪斯荷尔德变换实现矩阵的QR分解 更多... | |
| static void | SVD (const Matrix &A, Matrix &U, Matrix &W, Matrix &v) |
| 实现奇异值分解 更多... | |
| static void | solve (const Matrix &A, const Matrix &b, Matrix &x, int flag=DecompositionMethod::GaussiaJordan) |
| 求解Ax=b的方程 更多... | |
| static Matrix | zeros (int rows, int cols) |
| 生成全0矩阵 更多... | |
Protected 属性 | |
| NAFLOAT ** | m_val |
| 矩阵的数据 更多... | |
| NAFLOAT * | m_data |
| int | m_rows |
| 行数 更多... | |
| int | m_cols |
| 列数 更多... | |
| int | m_step |
| 步长 更多... | |
友元 | |
| NA_API std::istream & | operator>> (std::istream &is, Matrix &m) |
| 用istream的形式给矩阵赋值 更多... | |
| NA_API std::ostream & | operator<< (std::ostream &out, const Matrix &M) |
| 将矩阵中的内容导出 更多... | |
| NANA::Matrix::Matrix | ( | ) |
在文件 matrix.cpp 第 21 行定义.
| NANA::Matrix::Matrix | ( | int | rows, |
| int | cols | ||
| ) |
| NANA::Matrix::Matrix | ( | const Matrix & | M | ) |
| NANA::Matrix::Matrix | ( | int | m, |
| int | n, | ||
| NAFLOAT const * | val | ||
| ) |
|
virtual |
矩阵的析构函数,释放申请的内存
在文件 matrix.cpp 第 48 行定义.
| int NANA::Matrix::cols | ( | ) | const |
| void NANA::Matrix::create | ( | int | rows, |
| int | cols | ||
| ) |
| NAFLOAT NANA::Matrix::det | ( | ) | const |
| Matrix NANA::Matrix::dot | ( | NAFLOAT | b | ) | const |
| void NANA::Matrix::fill | ( | const NAFLOAT & | value | ) |
| const NAFLOAT ** NANA::Matrix::getConstValPtr | ( | ) | const |
| Matrix NANA::Matrix::getMat | ( | int | i1, |
| int | j1, | ||
| int | i2 = -1, |
||
| int | j2 = -1 |
||
| ) |
| NAFLOAT ** NANA::Matrix::getValPtr | ( | ) | const |
| Matrix NANA::Matrix::inv | ( | int | flag = GaussiaJordan | ) | const |
| const NAFLOAT * NANA::Matrix::operator[] | ( | int | row | ) | const |
| int NANA::Matrix::rank | ( | ) | const |
| void NANA::Matrix::release | ( | ) |
| int NANA::Matrix::rows | ( | ) | const |
| void NANA::Matrix::setMat | ( | const Matrix & | M, |
| int | i, | ||
| int | j | ||
| ) |
|
static |
实现奇异值分解
| A | 输入矩阵A |
| U | 左奇异向量U |
| D | 对角线给出奇异值 |
| V | 右奇异向量V^T |
在文件 matrix.cpp 第 236 行定义.

| Matrix NANA::Matrix::T | ( | ) | const |
|
static |