導航:首頁 > 編程語言 > java定義矩陣

java定義矩陣

發布時間:2025-09-13 12:52:16

Ⅰ 用java代碼,實現m行n列矩陣的轉換,即橫向變為縱向,縱向變為橫向,

定義2維數組,如上面的定義成a[5][3],下面的定義成b[3][5],然後取a數組的值賦給b數組

Ⅱ java二維數組實現矩陣相乘的問題

public class Matrix
{
private int value[][]; //存儲矩陣元素的二維數組

public Matrix(int m, int n) //構造m行n列的空矩陣
{
this.value=new int[m][n];
}
public Matrix(int n) //構造n行n列的空矩陣
{
this(n,n);
}
public Matrix()
{
this(10,10);
}
public Matrix(int mat[][]) //構造矩陣,由數組mat提供矩陣元素
{
this(mat.length,mat[0].length);
for (int i=0; i<mat.length; i++)
for (int j=0; j<mat[i].length; j++)
this.value[i][j] = mat[i][j];
}

public int get(int i, int j) //獲得矩陣第i行第j列的元素,O(1)
{
return value[i][j];
}
public void set(int i, int j, int k) //設置矩陣第i行第j列的元素,O(1)
{
value[i][j]=k;
}

public String toString() //行主序遍歷,訪問矩陣全部元素
{
String str="";
for (int i=0; i<value.length; i++)
{
for (int j=0; j<value[i].length; j++)
str += " "+value[i][j];
str += "\n";
}
return str;
}

public void add(Matrix b) //this和b兩個矩陣相加,改變當前矩陣
{
for (int i=0; i<this.value.length; i++)
for (int j=0; j<this.value[i].length; j++)
this.value[i][j] += b.value[i][j];
}

public void minus(Matrix b) //this和b兩個矩陣相減,改變當前矩陣
{
for (int i=0; i<this.value.length; i++)
for (int j=0; j<this.value[i].length; j++)
this.value[i][j] -= b.value[i][j];
}

public void multi(Matrix b)//當前矩陣=當前矩陣*b
{
if(this.value[0].length != b.value.length )
{
System.out.println("這兩個矩陣不能相乘");
return ;}
Matrix temp=new Matrix(value.length,b.value[0].length);
for(int i=0;i<value.length;i++)
for(int j=0;j<b.value[0].length;j++)
{
temp.value[i][j]=0;
for(int k=0;k<value[0].length;k++)
temp.value[i][j] +=value[i][k]*b.value[k][j];
}
this.value=temp.value;
}

public Matrix transpose() //返回轉置矩陣
{
Matrix trans = new Matrix(value[0].length, value.length);
for (int i=0; i<this.value.length; i++)
for (int j=0; j<this.value[i].length; j++)
trans.value[j][i]=this.value[i][j];
return trans;
}

}

class Matrix_ex
{
public static void main(String args[])
{
int m1[][]={{1,2,3},
{4,5,6}};
Matrix a=new Matrix(m1);
int m2[][]={{1,2},
{3,4},
{5,6}
};
Matrix b=new Matrix(m2);
System.out.print("Matrix a:\n"+a.toString());
System.out.print("Matrix b:\n"+b.toString());
//a.add(b);
a.multi(b);
System.out.print("Matrix a*b:\n"+a.toString());
// System.out.println("a的轉置矩陣:\n"+a.transpose().toString());
}
}

你把結果放到a里了
你的代碼 a[i][j] += (a[i][k] * c[k][j]);
如果a是2行4列,b是4行8列,結果應該是2行8列
a[0][7]就不存在,下標超界
應該先構造出一個結果矩陣,算完再賦值給a

Ⅲ 用JAVA編寫矩陣

這樣定義就可以:int[][] array = {{1,13,12,11},{2,14,17,10},{3,15,16,9},{4,5,6,7,8}};
想要查看的話:
for(int i = 0; i < array.length; i ++) {
for(int j = 0; j < array[i].length; j ++) {
System.out.println(array[i][j]);
}
}
註:java 中的二維數組中每一維的長度是可以不同的,如例子中的,前三個長度為4,第四個長度則為5,這樣是允許的。

閱讀全文

與java定義矩陣相關的資料

熱點內容
u盤傳文件時速度波動太大 瀏覽:490
用友u8資料庫沖突怎麼辦 瀏覽:694
如何更改網路賬戶移動 瀏覽:494
微信收到excel文件打開數字是亂碼 瀏覽:44
網路的傳輸方式 瀏覽:23
版本項的概念 瀏覽:797
機關文件要求每行多少字元 瀏覽:484
怎麼添加描述文件 瀏覽:890
路由固件開發工具 瀏覽:819
flash代碼checkbox顯示文字 瀏覽:226
java定義矩陣 瀏覽:609
如何創建word文檔 瀏覽:708
ug80模具設計全套教程 瀏覽:730
蘋果手機6p自帶壁紙 瀏覽:535
applestore評論不了 瀏覽:223
單韻母app哪個好 瀏覽:213
jstl和el習題 瀏覽:371
素描教學的網站有哪些 瀏覽:335
內存文件是干什麼的 瀏覽:725
win7共享登陸不用密碼怎麼設置 瀏覽:12

友情鏈接