zoukankan      html  css  js  c++  java
  • 线性代数-矩阵-转置 C和C++的实现

    原理解析:

    本节介绍矩阵的转置。矩阵的转置即将矩阵的行和列元素调换,即原来第二行第一列(用C21表示,后同)与第一行第二列(C12)元素调换位置,原来c31与C13调换。即cij与cji调换 。

    (此处补图说明)

    C++语言:

    首先我们想到的是把第i行第j列取出来与第j行第i列调换,这种思路很简单就不多说了。

    这里提供另一个思路,对整行整列进行操作,方法如下:

    1. 使用getSpecifiedRow()把本矩阵中的第i行取出来放在向量tempVec中;
    2. 使用 addOneColumToBack()把上述取出来的tempVec放入临时矩阵tempMatrix的列中;
    3. 用临时tempMatrix取代本矩阵;
    template <typename T>
    Matrix<T> Matrix<T>::transpose()
    {
        Matrix<T> tempMatrix;
        vector<T> tempVec;
    
        /*get transpose*/
        for(int i=0;i<m_iColumns;i++)
        {
            this->getSpecifiedRow(i,&tempVec);
            tempMatrix.addOneColumToBack(tempVec);
        }
    
        /*swap rows and columns*/
        m_vecMatrix = tempMatrix.m_vecMatrix;
        int temp = m_iColumns;
        m_iColumns = m_iRows;
        m_iRows = temp;
    
        return tempMatrix;
    }
  • 相关阅读:
    DateTime.now()用法
    C#中静态类详述
    面向对象详述
    解决Github打不开问题
    git 提交代码流程 先暂存 在提交+备注 然后拉取代码获取最新的代码 然后再推送 git push
    常用
    样式重置
    Html 5优化
    理解js闭包
    css 倒计时 svg
  • 原文地址:https://www.cnblogs.com/HongYi-Liang/p/7287495.html
Copyright © 2011-2022 走看看