求矩阵的乘法(Java语言)

这篇具有很好参考价值的文章主要介绍了求矩阵的乘法(Java语言)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  1. 输入两个矩阵(nxk,  kxm),  计算其乘积的结果。 模板如下

import java.util.Scanner;

/**

 * 

 * @author Administrator 矩阵乘法

 */

public class MatrixMultiply {

public static void main(String[] args) {

// 0. 定义变量

// 1. 获取输入第一个矩阵1

// 2. 获取输入第二个矩阵

// 3. 相乘

// 4. 打印

}

public double[][] input() {

}

// matrix1: nXk

// matrix2: kXm

// matrixResult: nXm

public double[][] multiply(double[][] matrix1, double[][] matrix2) {

}

// 打印矩阵

public void print(double[][] matrix) {

}

//打印矩阵相乘的等式

/*              1 1 1

1 2 3 4         3 3 3 30  30  30

2 2 2 2   *     5 5 5    =  22  22  22

3 3 3 3  2 2 2 33  33  33

*/

public void print(double[][] matrix1, double[][] matrix2, char op,

double[][] result) {

}

}

/**

 * 矩阵1: 

  1 2 3 4 

  2 2 2 2 

  3 3 3 3

 * 

 * 矩阵2: 

  1 1 1

  3 3 3

  5 5 5

  2 2 2

 * 

 矩阵相乘結果为:

30.0 30.0 30.0

22.0 22.0 22.0

33.0 33.0 33.0

 */

import java.util.Scanner;

/**

 * 

 * @author Administrator 矩阵乘法

 */

public class MatrixMultiply {

public static void main(String[] args) {

// 0. 定义变量

double[][] matrix1, matrix2, matixResult;

MatrixMultiply matrixMultiply = new MatrixMultiply();

// 1. 获取输入第一个矩阵1

matrix1 = matrixMultiply.input();

System.out.println("输入的矩阵1为:");

matrixMultiply.print(matrix1);

// 2. 获取输入第二个矩阵

matrix2 = matrixMultiply.input();

System.out.println("输入的矩阵2为:");

matrixMultiply.print(matrix2);

// 3. 相乘

matixResult = matrixMultiply.multiply(matrix1, matrix2);

System.out.println("矩阵相乘結果为:");

matrixMultiply.print(matixResult);

// 4. 打印

}

public double[][] input() {

// 0.定义变量

double[][] matrix;

int row, col;

// 1. 输入行数与列数

Scanner scanner = new Scanner(System.in);

System.out.print("请输入矩阵的行与列数(row, col):");

row = scanner.nextInt();

col = scanner.nextInt();

matrix = new double[row][col];

System.out.println("请输入矩阵(" + row + "," + col + ")的元素:");

for (int i = 0; i < row; i++) {

for (int j = 0; j < col; j++) {

matrix[i][j] = scanner.nextDouble();

}

}

return matrix;

}

// matrix1: nXk

// matrix2: kXm

// matrixResult: nXm

public double[][] multiply(double[][] matrix1, double[][] matrix2) {

double[][] matrixResult = new double[matrix1.length][matrix2[0].length];

int n, k, m;

n = matrix1.length;

k = matrix1[0].length;

m = matrix2[0].length;

if (k != matrix2.length) {

System.out.println("两个矩阵不能相乘!");

return null;

}

// 相乘

// 结果第一个元素

// 从01-0m

for (int p = 0; p < n; p++) {

for (int q = 0; q < m; q++) {

double sum = 0;

for (int i = 0; i < k; i++) {

sum += matrix1[p][i] * matrix2[i][q];

}

matrixResult[p][q] = sum;

}

}

return matrixResult;

}

// 打印矩阵

public void print(double[][] matrix) {

for (int i = 0; i < matrix.length; i++) {

for (int j = 0; j < matrix[i].length; j++) {

System.out.print(matrix[i][j] + "\t");

}

System.out.println();

}

}

public void print(double[][] matrix1, double[][] matrix2, char op,

double[][] result) {

}

}

/**

 * 矩阵1: 

  1 2 3 4 

  2 2 2 2 

  3 3 3 3

 * 

 * 矩阵2: 

  1 1 1

  3 3 3

  5 5 5

  2 2 2

 * 

 矩阵相乘結果为:

30.0 30.0 30.0

22.0 22.0 22.0

33.0 33.0 33.0

 */求矩阵的乘法(Java语言),java,开发语言求矩阵的乘法(Java语言),java,开发语言文章来源地址https://www.toymoban.com/news/detail-758503.html

到了这里,关于求矩阵的乘法(Java语言)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • R语言矩阵、向量操作(矩阵乘法,向量内积、外积(叉乘),矩阵转置,矩阵的逆)

    创建两个四维矩阵 A 与 B,A 按列填充,B 按行填充 : 创建两个 n 维向量 x 和 y : 使用 t(矩阵、向量名) 即可: 输出如下: 使用 %*% 符号即可: 输出如下: 在R语言中,两个矩阵、向量的内积并不只是简单的 * 号就完事了,而是有以下两种求法: 或者 其结果如下: (注意区分

    2024年02月12日
    浏览(22)
  • 【华为OD机试真题 Java语言】305、最大矩阵和、最大子矩阵 | 机试真题+思路参考+代码分析

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Java语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习 🎃题目描述 给定一个二维整数矩阵,要在这个矩阵中选出一个

    2024年02月07日
    浏览(33)
  • 【华为OD机试真题 Java语言】68、矩阵扩散 | 机试题+算法思路+考点+代码解析

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Java语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习 🎃题目描述 存在一个m*n的二维数组,其成员取值范围为0或1  

    2024年02月14日
    浏览(37)
  • 用java代码输出乘法口诀表

    当我们手里拿到一道题,首先就是先抽象出我们要解决的实质问题 ​ 首先观察乘法口诀表的规律,剥离要素 每一行特征 : ​ 乘号左边的数依次递加,右边的数不变 每一列特征 : ​ 乘号左边的数不变,右边的数依次递增 我们得出: ①乘号右边的数会在乘号左边的数不变

    2023年04月09日
    浏览(20)
  • 【华为OD机试真题 Java语言】367、矩阵元素的边界值 | 机试真题+思路参考+代码解析

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Java语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习

    2024年02月04日
    浏览(48)
  • 开发语言漫谈-Java

            由于C++过于复杂,Java诞生了。与C++相比,Java更易于学习和使用,它去掉C++中的指针和解决了内存管理问题。Java提供了垃圾自动回收机制,自动管理不再使用的内存。Python又进一步简化,使得语法更简洁,更易于阅读和编写。当然随着简化,性能就越来越低。    

    2024年04月10日
    浏览(36)
  • 【华为OD机试真题 Java语言】455、螺旋数字矩阵 | 机试真题+思路参考+代码解析(C卷)

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Java语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习

    2024年02月02日
    浏览(31)
  • 【华为OD机试真题 Java语言】464、 宽度最小的子矩阵、最小矩阵宽度 | 机试真题+思路参考+代码解析(最新C卷抽中)

    🍂个人博客首页: KJ.JK   🍂专栏介绍: 华为OD机试真题汇总,定期更新华为OD各个时间阶段的机试真题,每日定时更新,本专栏将使用Java语言进行更新解答,包含真题,思路分析,代码参考,欢迎大家订阅学习 🎃题目描述

    2024年01月23日
    浏览(33)
  • Java如何打印九九乘法表

    要打印九九乘法表,可以借助双重循环先看整体,有9行,所以就先用一个for循环,for(i=1;i=9;i++); 再将每一个看作一个整体,第一行打印一个,第二行打印两个,第i行打印i个,所以再用一个循环,for(j=1;j=i;j++), 最后打印System.out.printf(\\\"%-2d * % -2d = %-3d\\\" ,j, i, j*i); 特别注意:

    2024年02月06日
    浏览(28)
  • 用Java打印九九乘法表

    1、因为九九乘法表是九行九列的,所以,我们选择用循环来完成九九乘法表的打印 2、第一个知识点:在for循环的嵌套中(外层循环控制行数,内层循环控制列数) 所以我们就有了一个简单的框架: 现在这个框架里面有两个空的循环,没有初始值,控制条件,判断条件,也

    2024年02月08日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包