`
xifangyuhui
  • 浏览: 188561 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

两个矩阵的乘积的java实现

阅读更多

题目:

计算两个矩阵 A、B 的乘积矩阵 C。     

矩阵 A={1,2,3,4,5,6};矩阵 B={7,8,9,10,11,12}。
两个矩阵的乘积仍然是矩阵。若 A 矩阵有m行p列,B 矩阵有p行n列,则它们的乘积 C 矩阵有m 行n 列。                 

 C=A*B 的算法:  Cij=  (i=0,1,……,m-1;j=0,1,……,n-1)
设 A、B、C 矩阵用 3 个 2 维数组表示:a 数组有 3 行 2 列,b 数组有 2 行 3 列,则 c 数组有 3 行 3 列。
如:
c[0][0]=  a[0][0]*b[0][0]+a[0][1]*b[1][0];
c[1][0]=  a[1][0]*b[0][1]+a[1][1]*b[1][1];

 

 

public class ArrayMult {

	public static void main(String[] args) {
		int[][] a = {{1,2},{3,4},{5,6}};
		int[][] b = {{1,2,3},{4,5,6}};
		//m表示数组a的行数,n表示数组b的列数,s表示数组a的列数和数组b的行数
		int m = a.length, n = b[0].length, s1 = a[0].length, s2 = b.length;
		//判断两个数组是否能够相乘求积
		if(s1 != s2) {
			System.out.println("数组不能相乘,数组a的列数不等于数组b的行数");
			return;
		}
		//动态创建数组c用来保存结果
		int[][] c = new int[m][n];
		for(int i=0; i<m; i++)   //i表示数组c的每一行
			for(int j=0; j<n; j++) {  //j表示数组c的每一列
				int temp = 0;
				for(int k=0; k<s1; k++) //k表示数组a的列号和数组b的行号
					temp+=a[i][k]*b[k][j];
				c[i][j] = temp;
			}
		print(a);
		print(b);
		print(c);
	}
	
	private static void print(int[][] c) {
		int m = c.length;
		int n = c[0].length;
		for(int i=0; i<m; i++) {
			for(int j=0; j<n; j++) {
				if(c[i][j]<10)
					System.out.print(" ");
				System.out.print(c[i][j] + " ");
			}
		System.out.println();
		}
		System.out.println("--------------------------------------");
	}
}

 

0
0
分享到:
评论

相关推荐

    Java多线程技术实现矩阵乘积计算

    适合初学者使用,Java多线程技术实现矩阵乘积计算

    java实现矩阵的基本运算。

    如果两个矩阵具有相同的维度,即行数和列数相同,那么它们就可以相加。例如,如果我们有两个2x2矩阵A和B,那么结果矩阵C的每个元素ci,j等于Ai,j加上Bi,j。 2. **矩阵的相减**:类似于矩阵相加,矩阵相减也是对相同...

    JAVA初学小程序:矩阵乘积

    下面我们将详细探讨相关的Java知识,以及如何在MyEclipse 8.5这样的集成开发环境中实现矩阵乘积的计算。 首先,我们要了解矩阵的基本概念。矩阵是由有序的数列构成的矩形阵列,通常用大写字母表示,如A、B等。矩阵...

    张量乘积题目.rar 关于如何实现张量乘法的介绍及java实现

    - 张量积(外积):两个张量的每个元素与另一个张量的所有元素进行逐元素乘积,结果是新秩的张量。 - 乘积操作符:如TensorFlow和PyTorch中的`tf.tensordot()`或`torch.matmul()`,它们提供了灵活的张量乘法选项。...

    java实现的矩阵转换算法—适合java入门

    矩阵乘法更为复杂,需要遵循“行与列”的规则,即第一个矩阵的列数必须等于第二个矩阵的行数。对于矩阵A(m×n)和B(n×p),其乘积C(m×p)的每个元素c[i][j]可通过以下公式计算: ```java c[i][j] = Σ(a[i][k]*b[k...

    两个矩阵相乘Java 程序.zip

    本项目聚焦于使用Java语言实现两个矩阵相乘的程序。以下是对这一主题的详细阐述。 首先,矩阵是一个二维数组,由行和列组成,表示为M×N矩阵,其中M代表行数,N代表列数。矩阵乘法遵循特定的规则:两个矩阵A(m×n...

    java实现任意矩阵的LU分解

    对于一个n阶的可逆方阵A,如果能找到两个n阶的矩阵L和U,使得A = LU,其中L是单位下三角矩阵(对角线元素为1,下方元素全为0),U是上三角矩阵(主对角线以上元素全为0),那么我们称A实现了LU分解。在实际计算过程...

    几个推荐算法的java实现

    它将用户-物品评分矩阵分解为三个矩阵的乘积:U * Σ * V^T,其中U和V是正交矩阵,Σ是对角矩阵,包含了主要的信息。 - 在Java中实现SVD,通常会使用如Apache Commons Math或Jblas等数学库,它们提供了高效的矩阵...

    (Java语言实现的矩阵的基本运算)矩阵的加法乘法.rar

    加法方法可以直接遍历两个矩阵的对应元素进行加法操作,而乘法方法需要三个嵌套循环:外层循环遍历结果矩阵的行,中间循环遍历结果矩阵的列,内层循环计算乘积和。为了提高效率,可以考虑使用多线程或者优化算法来...

    Java实现 稀疏矩阵乘积

    接下来,遍历这两个数组,执行上述步骤计算矩阵乘积C。最后,输出C的非零元素。 需要注意的是,这段代码没有实现压缩存储,而是假设输入的N、P和Q都小于或等于2000,直接使用了二维数组。在实际应用中,如果N非常大...

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

    这通常涉及到嵌套循环,对于每个矩阵乘积的元素,都需要遍历两个输入矩阵的相关行和列。 在这个项目中,开发者可能已经创建了如下的类和方法: 1. `ComplexNumber` 类:代表一个复数,包含 `double` 类型的 `real`...

    java多线程技术实现矩阵乘法计算

    不过,我将基于标题“java多线程技术实现矩阵乘法计算”来构建相关的知识点。 在Java中实现多线程进行矩阵乘法计算,主要是利用并发编程技术,这样可以显著提高大型矩阵运算的速度,尤其是当矩阵尺寸较大时,单线程...

    矩阵运算Matrix,java实现

    矩阵可以进行加法、减法运算,如果两个矩阵尺寸相同(即行数和列数都相同),则可以直接相加或相减。矩阵乘法则更为复杂,要求一个矩阵的列数必须等于另一个矩阵的行数,结果矩阵的元素由对应位置的元素乘积求和得到...

    (Java语言实现的矩阵的基本运算)矩阵的加法乘法

    - 矩阵加法的前提是两个矩阵的维度相同,即行数和列数都要一致。在Java中,我们可以创建一个方法`add(Matrix other)`,将当前矩阵的每个元素与另一个矩阵的对应元素相加,结果存储在一个新的矩阵中返回。 3. **...

    多线程编程实现矩阵乘法

    假设我们有两个矩阵A(m×n)和B(n×p),它们的乘积C(m×p)的每个元素ci,j可以通过以下方式计算: \[ C[i][j] = \sum_{k=0}^{n-1} A[i][k] * B[k][j] \] 这个过程对所有的i从0到m-1和j从0到p-1进行迭代。 当...

    动态矩阵(含源码)java

    ### 动态矩阵乘积Java实现解析 #### 一、知识点概述 本篇文章将深入探讨一个Java程序,该程序实现了动态矩阵乘法的功能,并通过用户输入动态创建两个矩阵,然后计算并显示它们的乘积。文章将从以下几个方面展开:...

    矩阵加减乘除java实现

    对于两个矩阵A(m×n)和B(n×p),其乘积C(m×p)中的每个元素cij是通过矩阵A的第i行与矩阵B的第j列相应元素的乘积之和得到的。这里的关键在于A的列数必须等于B的行数。 **代码示例**: ```java public static ...

    Java实现矩阵连乘问题

    首先,我们需要理解矩阵乘法的基本规则:两个矩阵A和B可以相乘,当且仅当A的列数等于B的行数。假设我们有n个矩阵C1, C2, ..., Cn,我们要找的是这些矩阵连乘的最小代价操作序列,即C1 * C2 * ... * Cn。代价是指执行...

    两个矩阵相乘的算法之java

    本文将详细解析如何实现两个矩阵相乘的算法,并通过一个实际的Java程序来阐述这一过程。 首先,我们需要理解矩阵相乘的基本规则。如果矩阵A是m×n的(即有m行n列),矩阵B是n×p的,那么它们可以相乘得到一个新的...

Global site tag (gtag.js) - Google Analytics