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();
        }
    }
}
Java中的矩阵程序

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);
}

参考来源:维基百科

bannerAds