用java编写两个矩阵相乘
2017-12-03 18:05
337 查看
package D7Z;
import java.util.Scanner;
public class Matrix {
public static double[][] multiplyMatrix(double[][] a,double[][] b){
if(a[0].length!=b.length){
System.out.println("第一个矩阵的列不等于第二个矩阵的行!无法进行矩阵相乘运算!");
return null;
}else{
double[][] c=new double[a.length][b[0].length];
for(int i=0;i<a.length;i++){
for(int j=0;j<b[0].length;j++)
for(int t=0;t<a[0].length;t++)
{
c[i][j]+=a[i][t]*b[t][j];
}
System.out.println();
}
return c;
}
}
public static void displayMatrix(double[][] a){
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]);
System.out.print("\t");
}
System.out.println();
}
}
public static double[][] createMatrix(){
Scanner input=new Scanner(System.in);
System.out.println("请输入您要输入的矩阵的行");
int m= input.nextInt();
System.out.println("请输入您要输入的矩阵的列");
int n=input.nextInt();
double[][] x=new double[m]
;
System.out.println("请输入您的矩阵");
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
x[i][j]=input.nextDouble();
return x;
}
public static void main(String[] args){
int m=0,n=0,k=0;
double[][] a=new double[m]
;
double[][] b=new double
[k];
double[][] c=new double[m][k];
a=createMatrix();
b=createMatrix();
c= multiplyMatrix(a,b);
System.out.println("a矩阵");
displayMatrix(a);
System.out.println("b矩阵");
displayMatrix(b);
System.out.println("两个矩阵相乘得:");
displayMatrix(c);
}
}
![](https://img-blog.csdn.net/20171203183355766?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVpMjAxNjkx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20171203183337115?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmVpMjAxNjkx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
import java.util.Scanner;
public class Matrix {
public static double[][] multiplyMatrix(double[][] a,double[][] b){
if(a[0].length!=b.length){
System.out.println("第一个矩阵的列不等于第二个矩阵的行!无法进行矩阵相乘运算!");
return null;
}else{
double[][] c=new double[a.length][b[0].length];
for(int i=0;i<a.length;i++){
for(int j=0;j<b[0].length;j++)
for(int t=0;t<a[0].length;t++)
{
c[i][j]+=a[i][t]*b[t][j];
}
System.out.println();
}
return c;
}
}
public static void displayMatrix(double[][] a){
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.print(a[i][j]);
System.out.print("\t");
}
System.out.println();
}
}
public static double[][] createMatrix(){
Scanner input=new Scanner(System.in);
System.out.println("请输入您要输入的矩阵的行");
int m= input.nextInt();
System.out.println("请输入您要输入的矩阵的列");
int n=input.nextInt();
double[][] x=new double[m]
;
System.out.println("请输入您的矩阵");
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
x[i][j]=input.nextDouble();
return x;
}
public static void main(String[] args){
int m=0,n=0,k=0;
double[][] a=new double[m]
;
double[][] b=new double
[k];
double[][] c=new double[m][k];
a=createMatrix();
b=createMatrix();
c= multiplyMatrix(a,b);
System.out.println("a矩阵");
displayMatrix(a);
System.out.println("b矩阵");
displayMatrix(b);
System.out.println("两个矩阵相乘得:");
displayMatrix(c);
}
}
相关文章推荐
- Java设计两个矩阵相乘的方法
- Java实现两个矩阵相乘
- JAVA 求两个矩阵相乘的积
- Introduction to Java Programming编程题7.6<两个矩阵相乘>
- 编写一个程序用于执行矩阵的乘法。 m1是一个x行y列的矩阵,m2是y行z列的矩阵。 这两个矩阵应该相乘,结果存储在r中,它是x行z列的矩阵。
- 两个矩阵相乘但是结果不对,只有第一行的对,求解!
- 矩阵相乘入门,两个矩阵相乘
- java小练习(矩阵相乘)
- Java之戳中痛点 - (3)三目运算符的两个操作数类型尽量一致 Java之戳中痛点 - (4)i++ 和 ++i 探究原理 Java之戳中痛点 - (1)易变业务使用脚本语言编写 Java之戳中痛点 - (2)取余用偶判断,不要用奇判断 (5)switch语句break不能忘以及default不同位置的用法 Java之戳中痛点 - (7)善用Java整型缓存池
- Matlab中两个矩阵相乘报错:MTIMES is not fully supported for integer classes. At least one input must be scalar
- 科普:矩阵乘法是怎么做的?怎么判断两个矩阵是否可以相乘?不使用行列式
- 两个矩阵相乘!
- 用JAVA语言编写程序:包含两个类,一个类Cricle中包含计算圆周长,面积的方法。在另一个类Compute中给出半径值为10,创建对象,并调用Cricle类中的方法,计算该对象的面积、周长并显示出结
- 两个矩阵的相加和相乘
- 两个矩阵的乘积的java实现
- 使用指针数组实现这两个矩阵的相乘
- 矩阵相乘的三种方法(java实现)
- 请用Java或C编写一个程序,找出两个整数的最大公约数,公因数
- [置顶] 解决两个矩阵相乘的好方法
- 用java编写欧氏距离,标准欧氏距离,以及当输入是一个矩阵时返回一个欧氏距离数组