矩阵的知识点之多足以写成一本线性代数。

所以我们把矩阵的运算封装成矩阵类。以C++为主进行详解。

点击这里可以跳转至

【1】矩阵汇总:http://www.cnblogs.com/HongYi-Liang/p/7287369.html

【2】矩阵生成:现在的位置

【3】矩阵加减:http://www.cnblogs.com/HongYi-Liang/p/7287403.html

【4】矩阵点乘:http://www.cnblogs.com/HongYi-Liang/p/7287324.html

【5】矩阵化简:http://www.cnblogs.com/HongYi-Liang/p/7464850.html

......


 

作为矩阵的第一遍程序详解,讲述的如何生成矩阵,以下列矩阵为例子详解

 线性代数-矩阵-【2】矩阵生成  C和C++实现

分段详解:

基本成员:

矩阵类的成员变量有三个:

  1. 矩阵的行数 
  2. 矩阵的列数
  3. 用二维向量(数组)存放矩阵中的所有元素
    int m_iRows;
    int m_iColumns;
    vector<vector<T>>  m_vecMatrix;

 

接下来,为了生成矩阵,这里提供两种生成矩阵的方法。

  • 生成一个空的矩阵,把数据一行一行或者一列一列地把数据加入矩阵中。
  • 生成一个n行m列,且元素全为0的矩阵。一个一个地改变矩阵内部的元素。

方法一

包括以下两个成员函数

  1. 加入一行
  2. 加入一列

(成员函数请展开)

bool addOneRowToBack(vector<T> &vec);            //往最底插入一行
bool addOneColumToBack(vector<T> &vec);          //往最后插入一列

加入一行:

template <typename T>
bool Matrix<T>::addOneRowToBack(vector<T> &vec)
{
    /*Matrix has had datas*/
    if(m_iColumns !=0)
    {
        if(vec.size() != m_iColumns)//input data columns not equal matrix columns
        {
            cout<<"addOneRowToBack(): columns not equal"<<endl;
            return false ;
        }
    }

    /*Adding vec to m_vecDatas*/
    m_vecMatrix.push_back(vec);
    m_iRows ++;
    m_iColumns = vec.size();
    return true;    
}
View Code

相关文章:

  • 2021-08-13
  • 2021-04-26
  • 2021-09-24
  • 2022-12-23
  • 2021-10-29
  • 2021-12-19
  • 2021-12-05
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
  • 2021-12-29
  • 2021-12-05
  • 2021-12-10
相关资源
相似解决方案