工作中用到了行列转置,把这两种情况的算法记下来,以便后用

1.行列数相等的转置

  1. /**
  2. * @description 矩阵转置
  3. * @author oldmonk
  4. * @time 2017年8月18日
  5. */
  6. public class test {
  7.  
  8. public static void main(String [] args) {
  9. int data [][] = new int [] [] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } } ;
  10. System.out.println("----------------转置前------------------------") ;
  11. print1(data) ;
  12. reverse(data) ;
  13. System.out.println("----------------转置后------------------------") ;
  14. print1(data) ;
  15. }
  16.  
  17. // 将矩阵转置
  18. public static void reverse(int temp [][]) {
  19. for (int i = 0; i < temp.length; i++) {
  20. for (int j = i; j < temp[i].length; j++) {
  21. int k = temp[i][j] ;
  22. temp[i][j] = temp[j][i] ;
  23. temp[j][i] = k ;
  24. }
  25. }
  26. }
  27.  
  28. // 将矩阵输出
  29. public static void print1(int temp [][]) {
  30. for (int i = 0; i < temp.length; i++) {
  31. for (int j = 0; j < temp[i].length; j++) {
  32. System.out.print(temp[i][j] + "\t") ;
  33. }
  34. System.out.println() ;
  35. }
  36. }
  37. }

  测试结果:

   

2.任意数组转置

  1. /**
  2. * @description 任意数组转置
  3. * @author oldmonk
  4. * @time 2017年8月18日
  5. */
  6. public class test2 {
  7.  
  8. public static void main(String [] args)// 测试
  9. {
  10. double [][] TestMatrix = { { 1, 22, 34, 22 }, { 1, 11, 5, 21 }, { 7, 2, 13, 19 } } ;
  11. double [][] MatrixC = Transpose(TestMatrix, 3, 4) ;
  12.  
  13. System.out.println("-------转置前---------") ;
  14. myPrint(TestMatrix);
  15. System.out.println("-------转置后---------") ;
  16. myPrint(MatrixC);
  17. }
  18.  
  19. /**
  20. * @descript 任意二维数组转置
  21. * @author xujingyang
  22. * @time 2017年8月17日
  23. */
  24. public static double [][] Transpose(double [][] Matrix, int Line, int List) {
  25. double [][] MatrixC = new double [List] [Line] ;
  26. for (int i = 0; i < Line; i++) {
  27. for (int j = 0; j < List; j++) {
  28. MatrixC[j][i] = Matrix[i][j] ;
  29. }
  30. }
  31. return MatrixC ;
  32. }
  33.  
  34. // 将矩阵输出
  35. public static void myPrint(double temp [][]) {
  36. for (int i = 0; i < temp.length; i++) {
  37. for (int j = 0; j < temp[i].length; j++) {
  38. System.out.print(temp[i][j] + "\t") ;
  39. }
  40. System.out.println() ;
  41. }
  42. }
  43. }

测试结果:

   

java 矩阵转置算法的更多相关文章

  1. Java实验项目四——多线程矩阵相乘算法的设计

    Program:多线程矩阵相乘算法的设计 Description:利用多线程实现矩阵相乘,因为各个线程的运算互不影响, 所以不用使用锁,代码如下: thread.OperateMatrix类,实现矩阵 ...

  2. sdut 1592转置矩阵【稀疏矩阵的压缩存储】【快速转置算法】

    转置矩阵 Time Limit: 1000ms   Memory limit: 32768K  有疑问?点这里^_^ 题目链接:http://acm.sdut.edu.cn/sdutoj/proble ...

  3. JAMA:Java矩阵包

    原文链接:JAMA:Java矩阵包 API文档链接:线性代数Java包 JAMA jama是一个非常好用的java的线性代数软件包.适用于日常编程可能碰到的各种矩阵运算问题,提供了一个优雅的简便的解决 ...

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

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

  5. java矩阵包jama的简单操作

    本文转自http://www.cnblogs.com/zangbo/p/5622351.html 一.jama简介 Jama是一个基本的线性代数java包.包括一个基本的Matrix类和5个矩阵分解类 ...

  6. B-线性代数-矩阵转置

    [TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ ...

  7. Java实现编辑距离算法

    Java实现编辑距离算法 编辑距离,又称Levenshtein距离(莱文斯坦距离也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它 ...

  8. Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...

  9. Java字符串排列算法

    Java字符串排列算法 题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式? 比如:取1个球可以构成的组合有 A B C D E 共5种,取2个球可以构成的组 ...

随机推荐

  1. Request对象获得参数方法:query和body方法

    express框架Request对象获得参数方法:query和body方法 req.query 该属性用法很简单,直接获取地址栏传递的参数:例如: //引入依赖 var express = requi ...

  2. 安装Xcode 7 beta后Xcode 6崩溃的问题

    最新解决方案:把OSX El Capitan升级到Beta 7  (15A263e),Xcode6可使用! 解决方案:http://stackoverflow.com/questions/318035 ...

  3. Windows 10 SDK 10.0.10069 : The installer failed. User cancelled installation. Error code: -2147023294

    注* 请先跳到文章后面的配置“操作系统的区域设置”部分,然后尝试重试安装VS,如果仍然失败,请看下面内容. 安装UAP SDK失败 Visual Studio 2015 RC Community 安装 ...

  4. MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache

    转自:http://www.mongoing.com/archives/2540 传统数据库引擎的数据组织方式,一般存储引擎都是采用 btree 或者 lsm tree 来实现索引,但是索引的最小单位 ...

  5. XML DOM学习

    XML 文档对象模型定义访问和操作XML文档的标准方法. XML DOM 是 XML Document Object Model 的缩写,即 XML 文档对象模型. DOM 将 XML 文档作为一个树 ...

  6. model1 就是jsp+javabean

  7. 基于Seajs的可控台球碰撞游戏

    前言 不记得哪个黑色星期五,贪吃鱼基本完工的时候,产品突然增加需求,要求金币扔出去后不消失,互相可碰撞,其最终结果还要由服务器控制(没错,至今做的所有游戏都有幕后黑手,=W=). 对于碰撞以前只写过一 ...

  8. zoj1967 poj2570 Fiber Network (floyd算法)

    虽然不是最短路,但是询问时任意两点之间的信息都要知道才能回答,由此联想到floyd算法,只要都floyd算法的原理理解清楚了就会发现:这道题的思想和求任意两点之间的最短路的一样的,只不过是更新的信息不 ...

  9. 3.16 draw 3.17 更新函数

    3.16 draw virtual void draw(); void HelloWorld::draw() { CCSize size = CCDirector::sharedDirector()- ...

  10. DP 问题

    什么时候使用DP: 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理.(这句话可理解为先将复杂的问题简单化, 达到最简后的解题公式同样可以解复杂情况 ...