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

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 }

测试结果:

   

转载于:https://www.cnblogs.com/xujingyang/p/7387843.html

java 矩阵转置算法相关推荐

  1. c语言三元组稀疏矩阵的转置实验报告,稀疏矩阵三元组实现矩阵转置算法实验报告.doc...

    稀疏矩阵三元组实现矩阵转置算法实验报告.doc 1实验三稀疏矩阵的三元组表示实现矩阵转置算法学院专业班学号姓名一.实习目的1掌握稀疏矩阵的三元组顺序表存储表示:2掌握稀疏矩阵三元组表示的传统转置算法的 ...

  2. 三元组转化矩阵 java_矩阵转置算法及代码实现(三元组顺序表)

    矩阵的转置实际上就是将数据元素的行标和列标互换,即 T(i,j) = M(j,i) .例如: 相应地,三元组表转变为: 图2 三元组表 矩阵的转置,经历了三个步骤: 矩阵的行数 n 和列数 m 的值交 ...

  3. java 矩阵转置_图解利用Java实现数组转置

    我们编写Java代码,如下图所示: package com.tina; public class demo { public static void main(String args[]) { int ...

  4. 矩阵转置算法 oracle,请编写程序fun,函数的功能是:实现B=A+Aˊ,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函...

    请编写程序fun,函数的功能是:实现B=A+Aˊ,即把矩阵A加上A的转置,存放在矩阵B中.计算结果在main函 更多相关问题 假定砌块对孔砌筑,孔内不灌实混凝土,柱头全截面设一预制刚性垫块,且梁端有效 ...

  5. 数据结构实验6_压缩矩阵的转置、普通转置、快速转置算法

    实验6.压缩矩阵的2种转置运算 (1)实验目的 通过该实验,让学生理解矩阵压缩存储的概念.方法等相关知识,掌握用三元组表的方式如何进行矩阵的压缩存储, 并在此基础上进行转置操作,理解转置和快速转置两种 ...

  6. 十四、矩阵的快速转置算法

    十四.矩阵的快速转置算法 文章目录 十四.矩阵的快速转置算法 题目描述 解题思路 上机代码 题目描述 数据压缩是提高传输.存储效率一种技术.教材第5章介绍了两种简单的压缩存储方法.本实验要求实现三元组 ...

  7. java矩阵连乘算法_使用java写的矩阵乘法实例(Strassen算法)

    Strassen算法于1969年由德国数学家Strassen提出,该方法引入七个中间变量,每个中间变量都只需要进行一次乘法运算.而朴素算法却需要进行8次乘法运算. 原理 Strassen算法的原理如下 ...

  8. 用c语言实现矩阵的转置算法,C++实现矩阵原地转置算法

    本文实例描述了C++实现矩阵原地转置算法,是一个非常经典的算法,相信对于学习C++算法的朋友有很大的帮助.具体如下: 一.问题描述 微软面试题:将一个MxN的矩阵存储在一个一维数组中,编程实现矩阵的转 ...

  9. 经典编程习题,用Java实现:矩阵转置、最大公约数和最小公倍数、计算自然对数的底e的值、输出1000以内的回文素数、判断两个年份之间的平闰年情况。

    经典编程习题,用Java实现 1.矩阵转置 2.最大公约数和最小公倍数 3.计算自然对数的底e的值 4.输出1000以内的回文素数 5.判断两个年份之间的平闰年情况 1.矩阵转置 public cla ...

最新文章

  1. 背景图自适应屏幕居中显示,且不变形
  2. Android官方技术文档翻译——Ant 任务
  3. 【组合数学】生成函数 ( 使用生成函数求解多重集 r 组合数 )
  4. jzoj3384-理工男【欧拉定理,gcd,数论】
  5. 读书印记 - 《创新者的解答》
  6. kodi android 键盘,KODI按键映射,看IPTV按键设置
  7. 批量激活管理工具VAMT 3.0的安装与基本使用方法简介
  8. 690 - Pipeline Scheduling (DFS + 状态压缩 + 剪枝)
  9. java 返回指定月份的最后一天的59分59秒
  10. 从另外一个角度来学习大数据入门教学
  11. python3 print和format函数
  12. 智慧城市万亿级蓝海赛道机遇何在?
  13. 威5创非凡,领航再出击 | 新华三集团成立五周年庆
  14. Linux 服务器部署 vue(SPA) 与 nuxt(SSR)项目
  15. win10 软件移动位置信息服务器,如何修改win10软件默认安装位置
  16. 从0开始的网游ARPG实战案例:暗黑战神(第一章至第四章:设计登陆和创建角色功能实现)
  17. 一定要知道的简单配置Webpack操作
  18. 查询电脑关机/重启记录
  19. MySQL 最新版行政区划
  20. 使用树莓派3B、RTL-SDR、OpenWebRX搭建无线电监测站

热门文章

  1. 数据结构之二叉树(遍历、建立、深度)
  2. Unicode编码完全探究(三)之联通乱码
  3. Mysql不需要身份验证便可远程连接故障
  4. 使用data uri将图片内嵌到html中
  5. duilib 子窗口位置_duilib绝对定位与相对定位
  6. 前端跨域请求get_HTTP--跨域真的有这么难吗
  7. Excel问题汇总!
  8. CRNN维度变换的解释这样你也可以自定义CRNN了
  9. 从源码分析DEARGUI之全选和反选
  10. 掌握这些技巧助你轻松绘制程序流程图