dl
dl::Matrix< T, M, N > 模板类 参考

矩阵 更多...

#include <dl_matrix.h>

Public 类型

using Row = Array<T, N>
 
using Col = Array<T, M>
 

Public 成员函数

 Matrix ()
 
 Matrix (std::initializer_list< T > data)
 初始化
 
 Matrix (const T *p)
 传入地址构造,注意矩阵存储方式
 
Coloperator[] (size_t j)
 返回第j列
 
const Coloperator[] (size_t j) const
 返回第j列
 
Matrixoperator+= (const Matrix &b)
 矩阵 加 矩阵
 
Matrixoperator*= (const T &v)
 矩阵 乘 值
 
Matrixoperator*= (const Matrix &b)
 矩阵 乘 矩阵
 
void Identity ()
 获得行列式的值,Determinant(A)
 
void Transpose ()
 转置(M不等于N时还需另外实现)
 
void Dump ()
 
const TAt (size_t i) const
 
TAt (size_t i)
 

静态 Public 属性

static constexpr size_t MN = M * N
 

详细描述

template<typename T, std::size_t M, std::size_t N>
class dl::Matrix< T, M, N >

矩阵

在文件 dl_matrix.h38 行定义.

成员类型定义说明

◆ Col

template<typename T, std::size_t M, std::size_t N>
using dl::Matrix< T, M, N >::Col = Array<T, M>

在文件 dl_matrix.h42 行定义.

◆ Row

template<typename T, std::size_t M, std::size_t N>
using dl::Matrix< T, M, N >::Row = Array<T, N>

在文件 dl_matrix.h41 行定义.

构造及析构函数说明

◆ Matrix() [1/3]

template<typename T, std::size_t M, std::size_t N>
dl::Matrix< T, M, N >::Matrix ( )
inline

在文件 dl_matrix.h44 行定义.

◆ Matrix() [2/3]

template<typename T, std::size_t M, std::size_t N>
dl::Matrix< T, M, N >::Matrix ( std::initializer_list< T > data)
inline

初始化

注解
如下所示 Matrix<int, 3, 2> mat({ 1, 2, 3, 4, 5, 6 });

在文件 dl_matrix.h55 行定义.

◆ Matrix() [3/3]

template<typename T, std::size_t M, std::size_t N>
dl::Matrix< T, M, N >::Matrix ( const T * p)
inline

传入地址构造,注意矩阵存储方式

在文件 dl_matrix.h82 行定义.

成员函数说明

◆ At() [1/2]

template<typename T, std::size_t M, std::size_t N>
T & dl::Matrix< T, M, N >::At ( size_t i)
inline

在文件 dl_matrix.h250 行定义.

◆ At() [2/2]

template<typename T, std::size_t M, std::size_t N>
const T & dl::Matrix< T, M, N >::At ( size_t i) const
inline

在文件 dl_matrix.h246 行定义.

◆ Dump()

template<typename T, std::size_t M, std::size_t N>
void dl::Matrix< T, M, N >::Dump ( )
inline

在文件 dl_matrix.h210 行定义.

◆ Identity()

template<typename T, std::size_t M, std::size_t N>
void dl::Matrix< T, M, N >::Identity ( )
inline

获得行列式的值,Determinant(A)

注解
需要递归余子式

获得逆矩阵

设为单位矩阵

在文件 dl_matrix.h181 行定义.

◆ operator*=() [1/2]

template<typename T, std::size_t M, std::size_t N>
Matrix & dl::Matrix< T, M, N >::operator*= ( const Matrix< T, M, N > & b)
inline

矩阵 乘 矩阵

注解
this = this * b
不满足交换律、消去律。满足分配律。不是线性变换
由于返回自身,M与N必须相同

在文件 dl_matrix.h131 行定义.

◆ operator*=() [2/2]

template<typename T, std::size_t M, std::size_t N>
Matrix & dl::Matrix< T, M, N >::operator*= ( const T & v)
inline

矩阵 乘 值

注解
满足交换律、分配律。为线性变换

在文件 dl_matrix.h118 行定义.

◆ operator+=()

template<typename T, std::size_t M, std::size_t N>
Matrix & dl::Matrix< T, M, N >::operator+= ( const Matrix< T, M, N > & b)
inline

矩阵 加 矩阵

注解
对应值相加

在文件 dl_matrix.h109 行定义.

◆ operator[]() [1/2]

template<typename T, std::size_t M, std::size_t N>
Col & dl::Matrix< T, M, N >::operator[] ( size_t j)
inline

返回第j列

在文件 dl_matrix.h91 行定义.

◆ operator[]() [2/2]

template<typename T, std::size_t M, std::size_t N>
const Col & dl::Matrix< T, M, N >::operator[] ( size_t j) const
inline

返回第j列

在文件 dl_matrix.h99 行定义.

◆ Transpose()

template<typename T, std::size_t M, std::size_t N>
void dl::Matrix< T, M, N >::Transpose ( )
inline

转置(M不等于N时还需另外实现)

在文件 dl_matrix.h198 行定义.

类成员变量说明

◆ _col

template<typename T, std::size_t M, std::size_t N>
Col dl::Matrix< T, M, N >::_col[N]

在文件 dl_matrix.h257 行定义.

◆ _d

template<typename T, std::size_t M, std::size_t N>
T dl::Matrix< T, M, N >::_d[MN]

在文件 dl_matrix.h258 行定义.

◆ MN

template<typename T, std::size_t M, std::size_t N>
size_t dl::Matrix< T, M, N >::MN = M * N
staticconstexpr

在文件 dl_matrix.h43 行定义.


该类的文档由以下文件生成: