新聞中心
如何用java編寫一個矩陣的轉置?
int a[][] = {{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}};
成都創(chuàng)新互聯(lián)公司于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站建設、網(wǎng)站建設網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元固安做網(wǎng)站,已為上家服務,為固安各地企業(yè)和個人服務,聯(lián)系電話:13518219792
int b[][] = new int [4][7];
for (int i = 0; i 4; i++) {
for (int j = 0; j 7; j++) {
b[i][j] = a[j][i];
}
}
System.out.println("矩陣a:");
for (int i = 0; i 7; i++) {
for (int j = 0; j 4; j++) {
if (j 3) {
System.out.print(a[i][j] + " ");
} else {
System.out.println(a[i][j] + " ");
}
}
}
System.out.println("矩陣a轉置:");
for (int i = 0; i 4; i++) {
for (int j = 0; j 7; j++) {
if (j 6) {
System.out.print(b[i][j] + " ");
} else {
System.out.println(b[i][j] + " ");
}
}
}
代碼寫得爛不要噴我,我想解決思路就是這樣吧!
用java:利用二維數(shù)組,任意給出一個矩陣,編寫實現(xiàn)矩陣轉置的代碼
借花獻佛
/**
*?實現(xiàn)二維數(shù)組的轉置
*?@author?HAN
*
*/
public?class?transposition_Arrays2D_ch6_4?{
final?static?double?PI=3.1415;
public?static?void?main(String[]?args)?{
/*StaticTest?st1=new?StaticTest();
StaticTest?st2=new?StaticTest();
st1.method2("HAN");*/
/*****定義要用于轉置的二維數(shù)組*******/
int?arr2D[][]={{1,2,3},{4,5,6},{7,8,9}};
/*****構造結果新二維數(shù)組用于存放轉置結果*******/
/*定義結果數(shù)組變量,注意?一定要先開辟一個內存,
否則只是地址傳遞,也就是說兩個數(shù)組名實際上指向的是同一塊內存*/
//而構造二維數(shù)組可以為維度來進行,不一定是一個矩陣,即每一行的長度不一定相同
int?result_arr[][]=new?int[arr2D.length][];//先實現(xiàn)第一維
for(int?i=0?;?iarr2D.length;i++){?//再實現(xiàn)第二維
result_arr[i]=new?int[arr2D[i].length];
}
// int?result_arr[][]=Arrays.copyOf(arr2D,?arr2D.length);
//上面這個命令行行不通!
/*****輸出用于轉置的二維數(shù)組*******/
for?(int?x[]:arr2D){
for(int?e:x){
System.out.print(e+"?");
}
System.out.println();
}
System.out.println();
/*******進行元素倒置******/
for(int?i=0?;?iarr2D.length;i++){
for(int?j=0;?jarr2D[i].length;j++){
result_arr[j][i]=arr2D[i][j];?//轉置核心
}
}
/*****show?the?result?in?the?result?matrix*******/
for?(int?x[]:result_arr){
for(int?e:x){
System.out.print(e+"?");
}
System.out.println();
}
}
}
//import?java.util.Arrays;
//public?class?transposition_Arrays2D?{
//
// public?static?void?main(String[]?args)?{
// int?arr2D[][]={{1,2,3},{4,5,6},{7,8,9}};
// /*定義結果數(shù)組變量,注意?一定要先開辟一個內存,
// 否則只是地址傳遞,也就是說兩個數(shù)組名實際上指向的是同一塊內存*/
// int?result_arr[][]=new?int[arr2D.length][];
// for(int?i=0?;?iarr2D.length;i++){
// result_arr[i]=new?int[arr2D[i].length];
// }
//
//????????//?進行元素倒置
//????????for(int?i=0?;?iarr2D.length;i++){
//???????? for(int?j=0;?jarr2D[i].length;j++){
//???????? result_arr[j][i]=arr2D[i][j];
//???????? }
//????????}
//????????
//????????//?show?the?result?in?matrix
//????????for?(int?x[]:result_arr){
//???????? for(int?e:x){
//???????? System.out.print(e);
//???????? }
//???????? System.out.println();
//????????}
//????????
// }
//
//}
用JAVA程序寫出一個3*3矩陣的轉置
/**
* @author 熙熙
* @2011-4-20
*/
public class JuZhenZhuanZhi {
/**
* @param args
*/
public static void main(String[] args) {
int a[][]={
{11,12,13}
,{21,22,23}
,{31,32,33}
};
System.out.println("轉置前的矩陣:");
print(a);
zhuanZhi(a);
System.out.println("轉置后的矩陣:");
print(a);
}
public static void zhuanZhi(int a[][]){
for(int i=0;ia.length;i++){
for(int j=i+1;ja[i].length;j++){
int tem = a[i][j];
a[i][j] = a[j][i];
a[j][i] = tem;
}
}
}
public static void print(int a[][]){
for(int i=0;ia.length;i++){
int j=0;
for(;ja[i].length-1;j++){
System.out.print(a[i][j]+",");
}
System.out.println(a[i][j]);
}
}
}
java矩陣轉置
你的轉置意思是 行列交換?
public static Object[][] turnA(Object[][] a){
Object[][] b=new Object[a[0].length][a.length];
for(int i=0;ia.length; i++)
for(int j=0;ja[0].length;j++)
b[j][i]=a[i][j];
return b;
}
這個方法轉置的是對象矩陣,因此不能傳入基本變量的數(shù)組,需要用類型包裝器包裝。
e.g:
Integer[][] i=new Integer[3][5];
//int[][] i=new int[4][3];
//Can't use here; Integer,Double,String,byte and so on..
Random r=new Random();
for(int j=0;ji.length;j++){
Arrays.fill(i[j], r.nextInt(100));
System.out.println(Arrays.toString(i[j]));
}
Object[][] o=turnA(i);
for(int j=0;jo.length;j++){
System.out.println(Arrays.toString(o[j]));
這是static void main里的一段驗證程序,程序最前面需要
import java.util.*;
當前題目:矩陣轉置java代碼 矩陣的轉置代碼
當前路徑:http://fisionsoft.com.cn/article/hjdojj.html