`
yu120
  • 浏览: 81648 次
社区版块
存档分类
最新评论

Java矩阵的加减乘法

    博客分类:
  • Java
阅读更多
import java.util.Scanner;
 
public class matrix {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入选择:1 或 2 或 3");
        System.out.println("1.矩阵加法");
        System.out.println("2.矩阵减法");
        System.out.println("3.矩阵乘法");
        int lei = input.nextInt();
         
        if (lei == 1) {
            matrixadd();
        }
        else if (lei == 2) {
            matrixminus();
        }
        else {
            matrixmulti();
        }
    }
    static void matrixadd() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入矩阵行数");
        int a = input.nextInt();
        System.out.println("请输入矩阵列数");
        int b = input.nextInt();
        int[][] matrix1 = new int[a][b];
        int[][] matrix2 = new int[a][b];
        int[][] result = new int [a][b];
        System.out.println("请逐行输入第一个矩阵元素:");
        for (int hang = 0; hang < a;hang++) {
            for (int lie = 0; lie < b;lie++) {
                matrix1[hang][lie] = input.nextInt();
            }
        }
        System.out.println("请逐行输入第二个矩阵元素:");
        for (int hang = 0; hang < a;hang++) {
            for (int lie = 0; lie < b;lie++) {
                matrix2[hang][lie] = input.nextInt();
            }
        }
        for (int hang = 0; hang < a;hang++) {
            for (int lie = 0; lie < b;lie++) {
                result[hang][lie] = matrix1[hang][lie] + matrix2[hang][lie];
            }
        }
        for (int i = 0;i<a;i++) {
            for (int j = 0; j<b;j++) {
                System.out.print(result[i][j] + " ");
            }
            System.out.println();
        }
    }
    static void matrixminus() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入矩阵行数");
        int a = input.nextInt();
        System.out.println("请输入矩阵列数");
        int b = input.nextInt();
        int[][] matrix1 = new int[a][b];
        int[][] matrix2 = new int[a][b];
        int[][] result = new int [a][b];
        System.out.println("请逐行输入第一个矩阵元素:");
        for (int hang = 0; hang < a;hang++) {
            for (int lie = 0; lie < b;lie++) {
                matrix1[hang][lie] = input.nextInt();
            }
        }
        System.out.println("请逐行输入第二个矩阵元素:");
        for (int hang = 0; hang < a;hang++) {
            for (int lie = 0; lie < b;lie++) {
                matrix2[hang][lie] = input.nextInt();
            }
        }
        for (int hang = 0; hang < a;hang++) {
            for (int lie = 0; lie < b;lie++) {
                result[hang][lie] = matrix1[hang][lie] - matrix2[hang][lie];
            }
        }
        for (int i = 0;i<a;i++) {
            for (int j = 0; j<b;j++) {
                System.out.print(result[i][j] + " ");
            }
            System.out.println();
        }
    }
    static void matrixmulti() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入第一个矩阵的行数");
        int a1 = input.nextInt();
        System.out.println("请输入第一个矩阵列数");
        int b1 = input.nextInt();
        System.out.println("请输入第二个矩阵的行数");
        int a2 = input.nextInt();
        System.out.println("请输入第二个矩阵列数");
        int b2 = input.nextInt();
        if (b1 != a2) {
            System.out.println("Error!第一个矩阵的列数不等于第二个矩阵的行数,所以不能相乘。");
        }
        int[][] matrix1 = new int[a1][b1];
        int[][] matrix2 = new int[a2][b2];
        int[][] result = new int [a1][b2];
        System.out.println("请逐行输入第一个矩阵元素:");
        for (int hang = 0; hang < a1;hang++) {
            for (int lie = 0; lie < b1;lie++) {
                matrix1[hang][lie] = input.nextInt();
            }
        }
        System.out.println("请逐行输入第二个矩阵元素:");
        for (int hang = 0; hang < a2;hang++) {
            for (int lie = 0; lie < b2;lie++) {
                matrix2[hang][lie] = input.nextInt();
            }
        }
        for (int i = 0; i < a1;i++) {
            for (int j = 0;j < b2;j++) {
                for (int k = 0; k < b1; k++) {
                    result[i][j] += matrix1[i][k] * matrix2[k][j]; 
                }
            }
        }
        for (int i = 0;i<a1;i++) {
            for (int j = 0; j<b2;j++) {
                System.out.print(result[i][j] + " ");
            }
            System.out.println();
        }
    }
}

 

分享到:
评论

相关推荐

    矩阵加减乘除java实现

    根据给定的信息,本文将详细解释如何在Java中实现矩阵的基本运算:加法、减法、乘法以及求逆操作。 ### 一、矩阵加法 矩阵加法是指两个相同维度的矩阵之间的相加操作。具体实现时,需要确保两个矩阵具有相同的行数...

    JAVA实现矩阵加减乘除求逆运算.doc

    JAVA实现矩阵加减乘除求逆运算 矩阵运算是线性代数中的一种基本操作,包括矩阵加减乘除和求逆运算。JAVA语言可以实现这些运算操作,本文将详细介绍JAVA实现矩阵加减乘除求逆运算的方法。 矩阵加法是将两个矩阵相加...

    java实现矩阵的基本运算。

    4. **矩阵与矩阵的相乘**:矩阵乘法比加减复杂,它不满足交换律,即AB不等于BA,只有当矩阵B的列数等于矩阵A的行数时,两矩阵才能相乘。相乘的结果矩阵C的每个元素Ci,k是A的第i行与B的第k列对应元素的乘积之和。 5....

    java 实现的虚数与矩阵的乘法计算

    本项目“java 实现的虚数与矩阵的乘法计算”旨在通过Java语言学习和实现虚数和矩阵的乘法规则,从而提高抽象思维能力和编程技巧。 首先,让我们深入了解一下虚数。虚数是复数的一部分,由实部和虚部组成,如 \(a + ...

    Java复数矩阵库——JamPack

    JamPack通过封装复杂数学算法,使得开发人员无需深入理解底层实现,就能轻松完成复数矩阵的加减乘除、求逆、求解线性方程组等操作。 JamPack库的核心特性包括: 1. **复数支持**:JamPack库内部实现了复数类,提供...

    JAVA 矩阵计算器(含源代码)

    在矩阵计算器中,每个计算操作(比如“+”、“-”、“*”、“inv”代表矩阵加、减、乘和求逆)都会关联一个`ActionListener`对象。当用户点击相应的按钮时,对应的`actionPerformed()`方法会被调用,从而执行相应的...

    Java实现矩阵加减乘除及转制等运算功能示例

    为帮助读者更好地理解和掌握Java矩阵运算的实现,本文将详细介绍Java实现矩阵加减乘除及转制等运算功能。 矩阵加法 矩阵加法是将两个矩阵的对应元素相加,得到一个新的矩阵。Java中可以使用以下方法实现矩阵加法:...

    Java实现矩阵运算

    Java 实现的矩阵运算,加减乘逆反阵。

    java实现矩阵的加-减-乘-转置运算.docx

    Java 实现矩阵的加减乘转置运算 Java 语言是当前最流行的编程语言之一,它广泛应用于移动应用程序、Web 应用程序、企业软件和桌面应用程序等领域。Java 语言具有平台独立性、 objeto-oriented 和动态链接等特点,...

    nc.jar.zip_java 矩阵_java 计算_大数_大数计算 java_矩阵

    Java的大数类`java.math.BigInteger`和`java.math.BigDecimal`提供了对任意大小整数和浮点数的操作,如加、减、乘、除、比较等,以及模运算、幂运算等功能。这对于金融计算、密码学、精确计算等场景非常有用。 接...

    Java编写的姐希尔伯特矩阵

    3. 操作希尔伯特矩阵:可能包括矩阵的加减、乘法、求逆等操作。 在CholeskyYiwei.java中,可能涉及以下内容: 1. 检查矩阵是否对称正定:首先需要验证输入的矩阵是否满足楚列斯基分解的前提条件。 2. 楚列斯基分解...

    3.2Mat的线性代数加减乘操作

    本节将深入探讨`Mat`对象的线性代数加、减、乘操作,以及它们在实际应用中的作用。 首先,让我们了解`Mat`类的基本结构。`Mat`是OpenCV中的一个二维数组,可以用来表示图像、矩阵或任何其他二维数据。它具有行和列...

    java数据结构课程设计稀疏矩阵

    - **操作效率**:对矩阵的加、减、乘等操作要高效,这通常涉及到遍历三元组并进行相应的计算。 - **序列化和反序列化**:考虑如何将稀疏矩阵保存到文件,以便后续读取和恢复。 - **错误处理**:确保在非法操作(如...

    面向对象矩阵运算库的设计与实现

    对于加法和减法,可以直接遍历非零元素进行对应位置的加减;而对于乘法,可以采用多种算法,如高斯消元法、克拉默法则或Strassen分治算法,但后者在Java中可能因为递归深度限制而不适用。通常,矩阵乘法会使用乘法...

    java做的小小计算器

    - **运算符优先级**:学习如何处理不同运算符的优先级,例如,先乘除后加减。 - **异常处理**:了解Java中的try-catch块,用于捕获和处理可能出现的错误,比如除数为零的情况。 - **数据类型和转换**:理解Java中的...

    矩阵的相关运算gui界面设计的

    - **加法和减法**:对于两个相同大小的矩阵,我们可以遍历每个元素进行相应的加减操作。 - **乘法**:矩阵乘法更复杂,需要按照线性代数的规则进行。对于每个目标矩阵元素,它是由两个源矩阵对应行和列元素的乘积...

    Matrix:Java中的矩阵类

    7. **矩阵函数**:除了基本的加减乘法,还可以实现其他矩阵函数,如矩阵的逆、行列式、特征值和特征向量、奇异值分解(SVD)等。 8. **第三方库**:如果Java自带的矩阵操作功能不能满足需求,可以考虑使用第三方库,...

    大数加减乘类的实现

    大数运算通常涉及到的不仅仅是简单的整数范围内的加减乘除,而是需要处理超出标准整型数据类型的数值。本项目实现了一个大数加减乘的类,结合链表数据结构来存储和处理这些大数。 首先,我们来讨论大数的基本概念。...

    数学建模 数组和矩阵

    - 向量(矩阵)与数组的加减运算是完全相同的,即通过对应位置的元素相加或相减来实现。 - 示例:对于两个矩阵 A 和 B,`A + B` 和 `A - B` 是分别将两个矩阵对应位置的元素相加或相减。 2. **数乘运算**: - 数乘...

    java实现的n*n矩阵求值及求逆矩阵算法示例

    矩阵运算是指对矩阵进行加、减、乘、除等操作。在 Java 中,可以使用以下方式来实现矩阵运算: * 矩阵加法:使用 `+` 运算符 * 矩阵减法:使用 `-` 运算符 * 矩阵乘法:使用 `*` 运算符 * 矩阵除法:使用 `/` ...

Global site tag (gtag.js) - Google Analytics