Java实现矩阵加减乘除及转制等运算功能示例
2018-01-05 14:51
831 查看
本文实例讲述了Java实现矩阵加减乘除及转制等运算功能。分享给大家供大家参考,具体如下:
Java初学,编写矩阵预算程序,当做工具,以便以后写算法时使用。
public class MatrixOperation { public static int[][] add(int[][] matrix_a, int[][] matrix_b) { int row = matrix_a.length; int col = matrix_a[0].length; int[][] result = new int[row][col]; if (row != matrix_b.length || col != matrix_b[0].length) { System.out.println("Fault"); } else { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { result[i][j] = matrix_a[i][j] + matrix_b[i][j]; } } } return result; } public static int[][] sub(int[][] matrix_a, int[][] matrix_b) { int row = matrix_a.length; int col = matrix_a[0].length; int[][] result = new int[row][col]; if (row != matrix_b.length || col != matrix_b[0].length) { System.out.println("Fault"); } else { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { result[i][j] = matrix_a[i][j] - matrix_b[i][j]; } } } return result; } public static int[][] dot(int[][] matrix_a, int[][] matrix_b) { /* * matrix_a's dimention m*p matrix_b's dimention p*n. return dimention * m*n */ int row = matrix_a.length; int col = matrix_a[0].length; int[][] result = new int[row][col]; if (col != matrix_b.length) { System.out.println("Fault"); } else { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { result[i][j] = 0; for (int k = 0; k < col; k++) { result[i][j] += matrix_a[i][k] * matrix_b[k][j]; } } } } return result; } public static int[][] dot(int[][] matrix_a, int b) { int row = matrix_a.length; int col = matrix_a[0].length; int[][] result = new int[row][col]; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { result[i][j] = matrix_a[i][j] * b; } } return result; } public static int[][] mul(int[][] matrix_a, int[][] matrix_b) { /* * matrix_a's dimention m*n matrix_b's dimention m*n. return dimention * m*n */ int row = matrix_a.length; int col = matrix_a[0].length; int[][] result = new int[row][col]; if (row != matrix_b.length || col != matrix_b[0].length) { System.out.println("Fault"); } else { for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { result[i][j] = matrix_a[i][j] * matrix_b[i][j]; } } } return result; } public static int[][] transport(int[][] matrix_a) { int row = matrix_a.length; int col = matrix_a[0].length; int[][] result = new int[row][col]; for (int i = 0; i < row; i++) { for (int j = 0; j < col; j++) { result[j][i] = matrix_a[i][j]; } } return result; } public static void print(int[][] matrix) { int row = matrix.length; int col = matrix[0].length; for (int i = 0; i < row; i++) { System.out.print("["); for (int j = 0; j < col; j++) { System.out.print(matrix[i][j]); if (j != col - 1) { System.out.print(", "); } } System.out.print("]\n"); } } public static void main(String[] args) { int[][] a = { { 1, 2 }, { 3, 4 } }; int[][] b = { { 7, 8 }, { 6, 5 } }; int[][] c = add(a, b); System.out.println("脚本之家测试结果如下:"); System.out.println("matrix a = "); print(a); System.out.println("matrix b = "); print(b); System.out.println("matrix a + b = "); print(c); c = sub(a, b); System.out.println("matrix a - b = "); print(c); int[][] d = dot(a, b); System.out.println("matrix a dot b = "); print(d); int[][] e = dot(a, 3); System.out.println("matrix a * 3 = "); print(e); int[][] f = transport(a); System.out.println("matrix a.T = "); print(f); int[][] g = mul(a, b); System.out.println("matrix a * b = "); print(g); } }
运行结果:
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
您可能感兴趣的文章:
相关文章推荐
- Java实现矩阵加减乘除转制等运算
- 用java实现复数的加减乘除运算
- java第二周作业--实现矩阵的加法和乘法运算
- java实现查找文本内容替换功能示例
- 用java实现复数的加减乘除运算(改进第1次)
- 基本矩阵运算的Java实现
- java 打印功能示例(服务器端、web端Applet实现)
- Java中异或运算实现两个整数的交换以及其功能函数实现
- C实现矩阵加减乘除运算
- java实现两个数的加减乘除和平方运算
- java矩阵运算包ujmp中的一些小示例和注意事项
- Java实现简单计算器的加减乘除功能
- java实现四则运算,难点主要在理解加减乘除优先级以及使用递归
- 正整数加减乘除四则混合运算求值方法 java实现
- 基本矩阵运算的Java实现
- [算法]矩阵的基本运算(Java实现)
- C++实现矩阵类,实现了大部分矩阵运算功能,大家可以类比matlab
- 矩阵相关运算的java实现
- 用java实现分数各种运算(加减乘除,求余,求幂,求两个数中的较大值,较小值)
- 基本矩阵运算的Java实现