矩阵是一个直角数组. 元素排列在行和列中. 在本教程中,我们将看看Java中的一些矩阵程序。
矩阵图形表示
Java中的矩阵
我们可以使用 Java 中的两个维度数组实现矩阵。在行r
和列c
中的元素可以使用索引array[r][c]
访问。
Java 中的 Matrix 程序
由于我们正在使用两维数组来创建一个矩阵,我们可以轻松地对其元素执行各种操作. 在本教程中,我们将学习如何从用户输入中创建一个矩阵。
1、添加两个矩阵
这里是从用户输入中填充两个矩阵的简单程序,然后在相应的索引中添加其元素,以获得矩阵的添加。
1package com.journaldev.examples;
2
3import java.util.Scanner;
4
5public class MatrixPrograms {
6
7 public static void main(String[] args) {
8 System.out.println("Please enter the rows in the matrix");
9 Scanner sc = new Scanner(System.in);
10 int row = sc.nextInt();
11 System.out.println("Please enter the columns in the matrix");
12 int column = sc.nextInt();
13
14 int[][] first = new int[row][column];
15 int[][] second = new int[row][column];
16
17 for (int r = 0; r < row; r++) {
18 for (int c = 0; c < column; c++) {
19 System.out.println(String.format("Enter first[%d][%d] integer", r, c));
20 first[r][c] = sc.nextInt();
21 }
22 }
23
24 for (int r = 0; r < row; r++) {
25 for (int c = 0; c < column; c++) {
26 System.out.println(String.format("Enter second[%d][%d] integer", r, c));
27 second[r][c] = sc.nextInt();
28 }
29 }
30
31 // close the scanner
32 sc.close();
33
34 // print both matrices
35 System.out.println("First Matrix:\n");
36 print2dArray(first);
37
38 System.out.println("Second Matrix:\n");
39 print2dArray(second);
40
41 // sum of matrices
42 sum(first, second);
43 }
44
45 // below code doesn't take care of exceptions
46 private static void sum(int[][] first, int[][] second) {
47 int row = first.length;
48 int column = first[0].length;
49 int[][] sum = new int[row][column];
50
51 for (int r = 0; r < row; r++) {
52 for (int c = 0; c < column; c++) {
53 sum[r][c] = first[r][c] + second[r][c];
54 }
55 }
56
57 System.out.println("\nSum of Matrices:\n");
58 print2dArray(sum);
59 }
60
61 private static void print2dArray(int[][] matrix) {
62 for (int r = 0; r < matrix.length; r++) {
63 for (int c = 0; c < matrix[0].length; c++) {
64 System.out.print(matrix[r][c] + "\t");
65 }
66 System.out.println();
67 }
68 }
69}
二、抽出两个矩阵
以下是从第一个矩阵中提取第二个矩阵元素,然后打印结果矩阵的函数。
1private static void subtract(int[][] first, int[][] second) {
2 int row = first.length;
3 int column = first[0].length;
4 int[][] sum = new int[row][column];
5
6 for (int r = 0; r < row; r++) {
7 for (int c = 0; c < column; c++) {
8 sum[r][c] = first[r][c] - second[r][c];
9 }
10 }
11
12 System.out.println("\nSubtraction of Matrices:\n");
13 print2dArray(sum);
14}
3、两种矩阵的倍增
下面的方法将乘以矩阵元素并打印结果矩阵。
1private static void multiply(int[][] first, int[][] second) {
2 int row = first.length;
3 int column = first[0].length;
4 int[][] sum = new int[row][column];
5
6 for (int r = 0; r < row; r++) {
7 for (int c = 0; c < column; c++) {
8 sum[r][c] = first[r][c] * second[r][c];
9 }
10 }
11
12 System.out.println("\nMultiplication of Matrices:\n");
13 print2dArray(sum);
14}
参考: [维基百科](https://en.wikipedia.org/wiki/Matrix_(mathematics)