Java设计两个矩阵相乘的方法
新建一个类名matrix,包名为:cn.xx.xx,两个矩阵相乘的程序源代码如下:
import java.util.Scanner;
public class Matrix {
/* 矩阵相乘 */
public static double[][] multiplyMatrix(double[][] a,double[][] b){
if(a[0].length != b.length) {
return null;
}
double[][] c=new double[a.length][b[0].length];
for(int i=0;i<a.length;i++) {
for(int j=0;j<b[0].length;j++) {
for(int k=0;k<a[0].length;k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
return c;
}
/* 打印一个矩阵 */
public static void printMatrix(double[][] c) {
if (c!=null) {
for(int i=0;i<c.length;i++) {
for(int j=0;j<c[0].length;j++) {
System.out.printf("%-8.1f",c[i][j]); //保留1位小数;
}
System.out.println();
}
} else {
System.out.println("无效");
}
System.out.println();
}
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("Input m=");
int m=input.nextInt();
System.out.println("Input n=");
int n=input.nextInt();
System.out.println("Input k=");
int k=input.nextInt();
double [][]a=new double[m][n]; //定义一个m*n的矩阵
double [][]b=new double[n][k]; //定义一个n*k的矩阵
System.out.println("输入连续的数构成数组a:");
for(int i=0;i<m;i++)
for(int j=0;j<n;j++)
a[i][j]=input.nextDouble();
System.out.println("输入连续的数构成数组b:");
for(int i=0;i<n;i++)
for(int j=0;j<k;j++)
b[i][j]=input.nextDouble();
double [][]c=multiplyMatrix(a, b);
System.out.println("Matrix a:");
printMatrix(a); //打印a
System.out.println("Matrix b:");
printMatrix(b); //打印b
System.out.println("Matrix c:");
printMatrix(c); //打印c
input.close();
}
}
其中,代码运行的结果见如下图片。
如上图所示,当输入m=n=k=3时,即a和b都是3*3的矩阵;设a的矩阵元素为{1,2,3,4,5,6,7,8,9},b的矩阵元素为{0,2,4,1,4.5,2.2,1.1,4.3,5.2}时可得出a*b的矩阵,结果如下图:
Java设计两个矩阵相乘的方法相关推荐
- Java黑皮书课后题第8章:**8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法。编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积
**8.6(代数:两个矩阵相乘)编写两个矩阵相乘的方法.编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的乘积 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 **8.6( ...
- Java、两个矩阵相乘
编写两个矩阵相乘的方法: public static double[][] multiplyMatrix(double[][] a, double[][] b) 编写一个测试程序,提示 ...
- 编写两个矩阵相乘的方法(Java)
方法头如下: public static double[][] multiplyMatrix(double[][] a, double[][] b) 为了使矩阵a能够和矩阵b相乘,矩阵a的列数必须与矩 ...
- java计算两个矩阵相乘
import java.util.Scanner; public class matrix {public static double[][] multiplyMatrix(double[][] a, ...
- 实现两个矩阵相乘(Java)
矩阵乘法(Java实现) 矩阵可以用二维数组来表示:比如arr[n][m],其中n表示矩阵的行数m代表矩阵的列数,根据矩阵相乘的特性,两个矩阵相乘生成的那个新矩阵的行列是第一个矩阵的行和第二个矩阵的列 ...
- Java黑皮书课后题第8章:*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和
*8.5(代数:两个矩阵相加)编写两个矩阵相加的方法,编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示它们的和 题目 题目描述与运行示例 破题 代码 题目 题目描述与运行示例 8.5(代数:两 ...
- C++两个矩阵相乘代码(内附有矩阵相乘的条件与规则,以及对代码的详细解答)
再复制粘贴代码之前可以先了解学习一下什么是矩阵相乘,矩阵相乘的条件与规则又是什么. 点击一下链接即可进入学习: #矩阵相乘的学习链接 以下是两个矩阵相乘的代 ...
- 两个矩阵相乘的乘法次数_C ++程序将两个数字相乘而不使用乘法运算符
两个矩阵相乘的乘法次数 The problem is we have two integer numbers and find the multiplication of them without u ...
- 两复数乘积C语言,C语言程序(两复数矩阵相乘)改错求助
C语言程序(两复数矩阵相乘)改错求助 哪位高手帮我修改一下下面这段程序的错误,我看了实在是改不出.急用...先谢谢了! double bucmul(double ar,double ai,double ...
最新文章
- ubuntu 16.04 ROS + kinect v2 安装
- SAP MM PR中的Fixed ID字段与MD04里PR单据号后的星号
- Windows环境下Dapr入门
- linux-centos7 常用的基本命令--用户组管理
- 知识库的构建 6-1 语义网 Semantic Web
- python pdb调试快捷键,Python调试工具pdb使用详解
- 30万奖金等你拿!Apache Flink 极客挑战赛入门指南(附Demo)
- js 计算 往前(后)几天(月、年)
- 日本铁路“猫站长”走红
- html中px em pt区别介绍
- 松下P2卡数据恢复-删除/格式化100%完美恢复-解决方案
- 计算机毕业设计android的手机点名签到学生请假考勤系统app(源码+系统+mysql数据库+Lw文档)
- 苏雅欣课后作业四 个人总结
- 11月最新非主流男生混搭头像一组_我的爱不再能分给你
- Android模似器硬件加速
- 别把激励员工变成收买员工
- Fibonacci数列通项公式推导
- PixiJS 渲染优化
- 共享内存大数据量快速进程间通讯
- 原来Java世界里也有这么多精彩的故事,学Java真有趣!
热门文章
- 8月1日19:30,随瑞云科技一同免费观影《龙之谷·破晓奇兵》吧!
- C语言链表学生成绩制作成链表,C语言程序设计课程设计基于链表的学生成绩管理系统.doc...
- 20210322某教育公司前端总结
- MySQL 中 int 最大值
- Java 期末试题之GeoJSON
- 能升级鸿蒙系统最便宜手机,这4部手机可升级至华为鸿蒙系统 网友:终于等到了...
- 仿苹果的全局浮动按钮——swift
- 基于知识图谱的医疗诊断系统论文
- 办公软件测试题目,常用办公软件测试题.doc
- rgb、RGB常用数值