原理解析:

本节介绍矩阵的转置。矩阵的转置即将矩阵的行和列元素调换,即原来第二行第一列(用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=;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;
}

线性代数-矩阵-转置 C和C++的实现的更多相关文章

  1. 线性代数-矩阵-【1】矩阵汇总 C和C++的实现

    矩阵的知识点之多足以写成一本线性代数. 在C++中,我们把矩阵封装成类.. 程序清单: Matrix.h//未完待续 #ifndef _MATRIX_H #define _MATRIX_H #incl ...

  2. <矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置>

    //矩阵的基本操作:矩阵相加,矩阵相乘,矩阵转置 #include<stdio.h> #include<stdlib.h> #define M 2 #define N 3 #d ...

  3. 【异构计算】OpenCL矩阵转置

    介绍 矩阵转置,主要的技巧还是利用好local memory ,防止local memory,以及glabol memory的读取尽量是合并读写. 完整代码一: main.cpp代码 #include ...

  4. [转]Python中的矩阵转置

    Python中的矩阵转置 via 需求: 你需要转置一个二维数组,将行列互换. 讨论: 你需要确保该数组的行列数都是相同的.比如: arr = [[1, 2, 3], [4, 5, 6], [7, 8 ...

  5. [置顶] [MATLAB技术贴]漫谈MATLAB矩阵转置

    矩阵转置是matlab最基本的操作了,但这个基本操作,也是很多初学者容易出现问题的地方.本帖通过几个实例演示matlab矩阵转置的操作. 方法一:'  运算符与  .'  运算符 >>a ...

  6. POJ3268 Silver Cow Party(dijkstra+矩阵转置)

    Silver Cow Party Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 15156   Accepted: 6843 ...

  7. 矩阵转置 O(1)空间

    题目:用O(1)的空间实现矩阵的转置 为了方便,使用一维数组来分析.所谓矩阵转置,行变列,列变行.在转置的过程中,有的元素位置是不变的:对于变化位置的元素,要求O(1)空间完成,那么这些位置的变化一定 ...

  8. 基于visual Studio2013解决C语言竞赛题之0705矩阵转置

     题目 解决代码及点评 /* 5. 写一函数,将一个3×3的矩阵转置. */ #include <stdio.h> #include <stdlib.h> void mai ...

  9. Python小代码_5_二维矩阵转置

    使用列表推导式实现二维矩阵转置 matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] print(matrix) matrix_t = [[ro ...

随机推荐

  1. 1、微信小程序----弹幕的实现(无后台)

    小程序刚刚出来,现在网上的demo是多,但是要找到一个自己需要的却不容易.今天跟大家分享自己写的一个弹幕功能. 先来一张效果图: 我的思路是这样的,先用<switch>标签确定是否打开弹幕 ...

  2. 初学 Python(十三)——匿名函数

    初学 Python(十三)--匿名函数 初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做 ...

  3. 8. leetcode 485. Max Consecutive Ones

    Given a binary array, find the maximum number of consecutive 1s in this array. Example 1: Input: [1, ...

  4. hiberate关系映射大全

    1. 集合映射 开发流程: 需求分析/数据库设计.项目设计/ 编码/测试/实施部署上线/验收 需求: 用户购买, 填写地址! 数据库: 代码: // javabean设计 public class U ...

  5. rocketmq client for c#

    基于ikvm的rocketmq的c#客户端,由于阿里对c#不敏感,对这方面的东西缺少.因为工作需要弄了一个,分享给大家 https://github.com/franknew/RocketMQ-Cli ...

  6. Linux 粘着位(sticky bit)

    当设置粘着位时只有root或者owner才能删除.重命名文件. 示例: 用户apple默认组为fruit. [root@titan ~]# id apple uid=1001(apple) gid=1 ...

  7. angular学习(五)-- Module

    1.5 模块:Module 模块定义了一个应用程序 模块是应用程序中不同部分的容器 模块是应用控制器的容器 控制器通常属于一个模块 ng 中模块的引入最重要的目的就是为了解决原来全局定义的控制器污染的 ...

  8. HDU 3682 To Be an Dream Architect:查重【三维坐标系中点在实数上的映射】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3682 题意: 有一个n*n*n的立方体,左下角坐标为(1,1,1),接下来进行m次操作. 每个操作形如 ...

  9. 似是而非的JS - 异步调用可以转化为同步调用吗?

    源起 小飞是一名刚入行前端不久的新人,因为进到了某个大公司,俨然成为了学弟学妹眼中'大神',大家遇到js问题都喜欢问他,这不,此时他的qq弹出了这样一条消息 "hi,大神在吗?我有个问题想问 ...

  10. 使用ActionBarActivity或者RxAppCompatActivity或者AppCompatActivity闪退的问题

    新建一个项目,Activity继承RxAppCompatActivity的时候,在页面跳转的时候会出现闪退的问题,一直都没有解决. 后面将两个父类全部改成activity,问题解决.但是有的时候必须使 ...