Java矩阵程序完全指南:从基础实现到高级算法
矩阵是一个矩形数组,其中元素按照行和列进行排列。在本教程中,我们将会看一些用Java编写的矩阵程序。
矩阵的图形化呈现

使用Java编写的矩阵
我们可以在Java中使用二维数组来实现矩阵。可以通过索引”array[r][c]”来访问位于行”r”和列”c”的元素。
在Java中的矩阵程序
因为我们使用二维数组来创建矩阵,所以可以很容易地对其元素进行各种操作。在本教程中,我们将学习如何从用户输入创建矩阵。然后,我们将对两个矩阵进行加法、减法和乘法运算,并在控制台上打印结果矩阵。
1. 矩阵相加
这是一个简单的程序,用来从用户输入中填充两个矩阵。然后,将它们在相应索引位置的元素相加,得到矩阵的和。最后,我们将打印出这两个矩阵的和。
package com.Olivia.examples;
import java.util.Scanner;
public class MatrixPrograms {
public static void main(String[] args) {
System.out.println("请输入矩阵的行数");
Scanner sc = new Scanner(System.in);
int row = sc.nextInt();
System.out.println("请输入矩阵的列数");
int column = sc.nextInt();
int[][] first = new int[row][column];
int[][] second = new int[row][column];
for (int r = 0; r < row; r++) {
for (int c = 0; c < column; c++) {
System.out.println(String.format("请输入第一个矩阵[%d][%d]位置的整数", r, c));
first[r][c] = sc.nextInt();
}
}
for (int r = 0; r < row; r++) {
for (int c = 0; c < column; c++) {
System.out.println(String.format("请输入第二个矩阵[%d][%d]位置的整数", r, c));
second[r][c] = sc.nextInt();
}
}
// 关闭扫描器
sc.close();
// 打印两个矩阵
System.out.println("第一个矩阵:\n");
print2dArray(first);
System.out.println("第二个矩阵:\n");
print2dArray(second);
// 矩阵求和
sum(first, second);
}
// 以下代码不处理异常
private static void sum(int[][] first, int[][] second) {
int row = first.length;
int column = first[0].length;
int[][] sum = new int[row][column];
for (int r = 0; r < row; r++) {
for (int c = 0; c < column; c++) {
sum[r][c] = first[r][c] + second[r][c];
}
}
System.out.println("\n矩阵的和:\n");
print2dArray(sum);
}
private static void print2dArray(int[][] matrix) {
for (int r = 0; r < matrix.length; r++) {
for (int c = 0; c < matrix[0].length; c++) {
System.out.print(matrix[r][c] + "\t");
}
System.out.println();
}
}
}

2. 两个矩阵相减
这里是一个函数,用来将第二个矩阵的元素从第一个矩阵中减去,并打印结果矩阵。
private static void subtract(int[][] first, int[][] second) {
int row = first.length;
int column = first[0].length;
int[][] result = new int[row][column];
for (int r = 0; r < row; r++) {
for (int c = 0; c < column; c++) {
result[r][c] = first[r][c] - second[r][c];
}
}
System.out.println("\n矩阵的差:\n");
print2dArray(result);
}
3. 矩阵相乘
以下方法将会对矩阵的元素进行乘法操作并打印结果矩阵。
private static void multiply(int[][] first, int[][] second) {
int row = first.length;
int column = first[0].length;
int[][] result = new int[row][column];
for (int r = 0; r < row; r++) {
for (int c = 0; c < column; c++) {
result[r][c] = first[r][c] * second[r][c];
}
}
System.out.println("\n矩阵的积:\n");
print2dArray(result);
}
参考来源:维基百科