`

JAVA实现矩阵加法乘法

    博客分类:
  • Java
阅读更多

矩阵运算库函数

请实现矩阵的基本运算库函数。该库函数包含矩阵的转置,矩阵与矩阵的加法,矩阵与矩阵的乘法等功能。

矩阵的转置即行列互换。矩阵的加法是对应元素相加。矩阵的乘法是对应行列的点积。

感兴趣的同学请实现更多关于矩阵运算的函数。

=========

输入:

矩阵A。第一行是元素的个数,之后是矩阵元素。

输出:

矩阵转置AT ,加法A+AT ,乘法A*AT 的结果。

 

示例输入:

3 3

0.84339 0.42034 0.76091

0.79426 0.89185 0.52491

0.72037 0.83435 0.36943

示例输出:

3 3

0.84339 0.79426 0.72037

0.42034 0.89185 0.83435

0.76091 0.52491 0.36943

3 3

1.68677 1.21460 1.48128

1.21460 1.78371 1.35925

1.48128 1.35925 0.73885

3 3

1.46697 1.44416 1.23936

1.44416 1.70178 1.51019

1.23936 1.51019 1.35154


 

 

 

 

 

import java.util.Scanner;

public class Main {
    //打印矩阵
    public static void printMatrix(double[][] matrix,int a,int b){
        for(int i=0; i<a; i++){
            for(int j=0; j<b; j++){
                System.out.printf("%9.5f ",matrix[i][j]);
            }
            System.out.println();
        }
        System.out.println();
    }
    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        int a = scanner.nextInt();
//        int b = scanner.nextInt();
        int a = 3;
        int b = 3;
        double[][] matrix = new double[][]{{0.84339,0.42034,0.76091},{0.79426,0.89185,0.52491},{0.72037,0.83435,0.36943}};
//        while(scanner.hasNext()){
//            for(int i=0; i<a; i++){
//                for(int j=0; j<b; j++){
//                    matrix[i][j] = scanner.nextDouble();
//                }
//            }
//        }
        double[][] matrixT = new double[a][b];//矩阵转置
        double[][] matrixA = new double[a][b];//矩阵加
        double[][] matrixP = new double[a][b];//矩阵乘
        //矩阵转置
        for(int i=0; i<a; i++){
            for(int j=0; j<b; j++){
//                if(i != j && i<j){
//                    double temp = matrix[i][j];
//                    matrix[i][j] = matrix[j][i];
//                    matrix[j][i] = temp;
//                }
                matrixT[i][j] = matrix[j][i];
                matrixA[i][j] = matrix[i][j] + matrix[j][i];
               
            }
        }
        for(int i=0; i<a; i++){
            for(int j=0; j<b; j++){
                for (int k = 0; k<b; k++) {//columns of a = rows of b
                matrixP[i][j] += matrix[i][k]*matrixT[k][j];
               
                }
            }
        }
        printMatrix(matrixT,3,3);
        printMatrix(matrixA,3,3);
        printMatrix(matrixP,3,3);

    }
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics