java 矩阵转置算法
工作中用到了行列转置,把这两种情况的算法记下来,以便后用
1.行列数相等的转置
- /**
- * @description 矩阵转置
- * @author oldmonk
- * @time 2017年8月18日
- */
- public class test {
- public static void main(String [] args) {
- int data [][] = new int [] [] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } } ;
- System.out.println("----------------转置前------------------------") ;
- print1(data) ;
- reverse(data) ;
- System.out.println("----------------转置后------------------------") ;
- print1(data) ;
- }
- // 将矩阵转置
- public static void reverse(int temp [][]) {
- for (int i = 0; i < temp.length; i++) {
- for (int j = i; j < temp[i].length; j++) {
- int k = temp[i][j] ;
- temp[i][j] = temp[j][i] ;
- temp[j][i] = k ;
- }
- }
- }
- // 将矩阵输出
- public static void print1(int temp [][]) {
- for (int i = 0; i < temp.length; i++) {
- for (int j = 0; j < temp[i].length; j++) {
- System.out.print(temp[i][j] + "\t") ;
- }
- System.out.println() ;
- }
- }
- }
测试结果:
2.任意数组转置
- /**
- * @description 任意数组转置
- * @author oldmonk
- * @time 2017年8月18日
- */
- public class test2 {
- public static void main(String [] args)// 测试
- {
- double [][] TestMatrix = { { 1, 22, 34, 22 }, { 1, 11, 5, 21 }, { 7, 2, 13, 19 } } ;
- double [][] MatrixC = Transpose(TestMatrix, 3, 4) ;
- System.out.println("-------转置前---------") ;
- myPrint(TestMatrix);
- System.out.println("-------转置后---------") ;
- myPrint(MatrixC);
- }
- /**
- * @descript 任意二维数组转置
- * @author xujingyang
- * @time 2017年8月17日
- */
- public static double [][] Transpose(double [][] Matrix, int Line, int List) {
- double [][] MatrixC = new double [List] [Line] ;
- for (int i = 0; i < Line; i++) {
- for (int j = 0; j < List; j++) {
- MatrixC[j][i] = Matrix[i][j] ;
- }
- }
- return MatrixC ;
- }
- // 将矩阵输出
- public static void myPrint(double temp [][]) {
- for (int i = 0; i < temp.length; i++) {
- for (int j = 0; j < temp[i].length; j++) {
- System.out.print(temp[i][j] + "\t") ;
- }
- System.out.println() ;
- }
- }
- }
测试结果:
java 矩阵转置算法的更多相关文章
- Java实验项目四——多线程矩阵相乘算法的设计
Program:多线程矩阵相乘算法的设计 Description:利用多线程实现矩阵相乘,因为各个线程的运算互不影响, 所以不用使用锁,代码如下: thread.OperateMatrix类,实现矩阵 ...
- sdut 1592转置矩阵【稀疏矩阵的压缩存储】【快速转置算法】
转置矩阵 Time Limit: 1000ms Memory limit: 32768K 有疑问?点这里^_^ 题目链接:http://acm.sdut.edu.cn/sdutoj/proble ...
- JAMA:Java矩阵包
原文链接:JAMA:Java矩阵包 API文档链接:线性代数Java包 JAMA jama是一个非常好用的java的线性代数软件包.适用于日常编程可能碰到的各种矩阵运算问题,提供了一个优雅的简便的解决 ...
- POJ3268 Silver Cow Party(dijkstra+矩阵转置)
Silver Cow Party Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 15156 Accepted: 6843 ...
- java矩阵包jama的简单操作
本文转自http://www.cnblogs.com/zangbo/p/5622351.html 一.jama简介 Jama是一个基本的线性代数java包.包括一个基本的Matrix类和5个矩阵分解类 ...
- B-线性代数-矩阵转置
[TOC] 更新.更全的<机器学习>的更新网站,更有python.go.数据结构与算法.爬虫.人工智能教学等着你:https://www.cnblogs.com/nickchen121/ ...
- Java实现编辑距离算法
Java实现编辑距离算法 编辑距离,又称Levenshtein距离(莱文斯坦距离也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数,如果它们的距离越大,说明它 ...
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...
- Java字符串排列算法
Java字符串排列算法 题目:现有ABCDE 5个球 构成的排列组合 可重复抽取 最多取到16个 共有多少种组合方式? 比如:取1个球可以构成的组合有 A B C D E 共5种,取2个球可以构成的组 ...
随机推荐
- Request对象获得参数方法:query和body方法
express框架Request对象获得参数方法:query和body方法 req.query 该属性用法很简单,直接获取地址栏传递的参数:例如: //引入依赖 var express = requi ...
- 安装Xcode 7 beta后Xcode 6崩溃的问题
最新解决方案:把OSX El Capitan升级到Beta 7 (15A263e),Xcode6可使用! 解决方案:http://stackoverflow.com/questions/318035 ...
- Windows 10 SDK 10.0.10069 : The installer failed. User cancelled installation. Error code: -2147023294
注* 请先跳到文章后面的配置“操作系统的区域设置”部分,然后尝试重试安装VS,如果仍然失败,请看下面内容. 安装UAP SDK失败 Visual Studio 2015 RC Community 安装 ...
- MongoDB Wiredtiger存储引擎实现原理——Copy on write的方式管理修改操作,Btree cache
转自:http://www.mongoing.com/archives/2540 传统数据库引擎的数据组织方式,一般存储引擎都是采用 btree 或者 lsm tree 来实现索引,但是索引的最小单位 ...
- XML DOM学习
XML 文档对象模型定义访问和操作XML文档的标准方法. XML DOM 是 XML Document Object Model 的缩写,即 XML 文档对象模型. DOM 将 XML 文档作为一个树 ...
- model1 就是jsp+javabean
- 基于Seajs的可控台球碰撞游戏
前言 不记得哪个黑色星期五,贪吃鱼基本完工的时候,产品突然增加需求,要求金币扔出去后不消失,互相可碰撞,其最终结果还要由服务器控制(没错,至今做的所有游戏都有幕后黑手,=W=). 对于碰撞以前只写过一 ...
- zoj1967 poj2570 Fiber Network (floyd算法)
虽然不是最短路,但是询问时任意两点之间的信息都要知道才能回答,由此联想到floyd算法,只要都floyd算法的原理理解清楚了就会发现:这道题的思想和求任意两点之间的最短路的一样的,只不过是更新的信息不 ...
- 3.16 draw 3.17 更新函数
3.16 draw virtual void draw(); void HelloWorld::draw() { CCSize size = CCDirector::sharedDirector()- ...
- DP 问题
什么时候使用DP: 最优化原理:如果问题的最优解所包含的子问题的解也是最优的,就称该问题具有最优子结构,即满足最优化原理.(这句话可理解为先将复杂的问题简单化, 达到最简后的解题公式同样可以解复杂情况 ...