「java二维数组乘法」Java中二维数组

博主:adminadmin 2022-12-17 12:18:06 82

本篇文章给大家谈谈java二维数组乘法,以及Java中二维数组对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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; imat.length; i++)

for (int j=0; jmat[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; ivalue.length; i++)

{

for (int j=0; jvalue[i].length; j++)

str += " "+value[i][j];

str += "\n";

}

return str;

}

public void add(Matrix b) //this和b两个矩阵相加,改变当前矩阵

{

for (int i=0; ithis.value.length; i++)

for (int j=0; jthis.value[i].length; j++)

this.value[i][j] += b.value[i][j];

}

public void minus(Matrix b) //this和b两个矩阵相减,改变当前矩阵

{

for (int i=0; ithis.value.length; i++)

for (int j=0; jthis.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;ivalue.length;i++)

for(int j=0;jb.value[0].length;j++)

{

temp.value[i][j]=0;

for(int k=0;kvalue[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; ithis.value.length; i++)

for (int j=0; jthis.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实现数组相乘

你是川师计科4班的某某吧?

public class JuZheng {

private int a[][]=new int[2][3];

private final int b[][]={ {1,5,2,8},{5,9,10,-3},{2,7,-5,-18} };

public JuZheng(int s[][])

{ a=s; }

public int[][] Getb()

{

return b;

}

public int[][] GetArray()

{

int [][]array=new int[2][4];

for(int i=0;i=1;i++)

{

for(int j=0;j=3;j++)

{

array[i][j]=a[i][0]*b[0][j]+a[i][1]*b[1][j]+a[i][2]*b[2][j];

}

}

return array;

}

}

import java.util.Scanner;

public class Mian {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("*** Matrix A ***");

Scanner scanner=new Scanner(System.in);

int a[][]=new int[2][3];

for(int i=0;i=1;i++)

{

for(int j=0;j=2;j++)

{

a[i][j]=scanner.nextInt();

}

}

JuZheng juzheng=new JuZheng(a);

System.out.println("*** Matrix B ***");

for(int i=0;i=2;i++)

{

for(int j=0;j=3;j++)

{

System.out.print(juzheng.Getb()[i][j]+" ");

}

System.out.println();

}

System.out.println("*** Matrix C ***");

int s[][]=new int [2][4];

s=juzheng.GetArray();

for(int i=0;i=1;i++)

{

for(int j=0;j=3;j++)

{

System.out.print(s[i][j]+" ");

} System.out.println();

}

}

}

如何用java二维数组实现矩阵的乘法

public class Matrix {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int[][] A={{1,5,7,3},

{3,6,3,9},

{1,2,8,7},

{0,3,1,9},

{3,2,5,4}};

int [][]B={{3,9,1,4,1,4},

{5,6,7,9,0,3},

{3,2,7,2,5,6},

{9,7,4,7,8,0}};

int [][]C= new int [5][6];

int i,j,k;

for(i=0;i5;i++){

for(j=0;j6;j++){

C[i][j]=0;

}

}

for(i=0;i5;i++){

for(j=0;j6;j++){

for(k=0;k4;k++){

C[i][j]+=A[i][k]*B[k][j];

}

}

}

for(i=0;i5;i++){

for(j=0;j6;j++){

System.out.print(" "+C[i][j]+" ");

}

System.out.println();

}

}

}

关于java二维数组乘法和Java中二维数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-17,除非注明,否则均为首码项目网原创文章,转载请注明出处。