矩阵乘法java代码 java编写矩阵乘法
java 矩阵相乘
有两个错误:
一、Matrix 类的构造方法写的有问题:改成这样:
public Matrix(int m, int n) {
this.m = m;
this.n = n;
this.ma = new int[m][n];
}
二、如果你发现输入和输出的不一致的话,把Matrix类的print()方法:
循环打印的那行代码改成 System.out.print(ma[i][j] + " ");
也就是单引号改成双引号 ,单引号空格 如果和数字相加回转成int,值为:32
java矩阵乘法
import java.util.Arrays;
public class Test {
static int[][] matrix1;
static int[][] matrix2;
public static void main(String[] args) {
matrix1=new int[][]{{1,2,3,4},{2,3,4,5},{3,4,5,6},{4,5,6,7},{5,6,7,8},{6,7,8,9}};
matrix2=new int[][]{{9,8,7,6,5,4},{8,7,6,5,4,3},{7,6,5,4,3,2},{6,5,4,3,2,1}};
if(matrix1.length!=matrix2[0].length){//若无法相乘则退出
System.out.println("ivalid input");
System.exit(0);
}
int[][] r = new int[matrix1[0].length][matrix2.length];
for(int i=0;ir.length;++i){
for(int j=0;jr[i].length;++j){//每一个r[i][j]的运算:
r[i][j]=0;//初始化
for(int k=0;kmatrix2.length;++k)
r[i][j]+=matrix1[i][k]*matrix2[k][j];
}
}
//输出结果
for(int i=0;ir.length;++i)
System.out.println(Arrays.toString(r[i]));
}
}
用java怎么写矩阵乘法?
import java.util.Scanner;
public class Matrix {
public double[][] create() {
Scanner sc = new Scanner(System.in) ;
System.out.print("请输入矩阵的行高:");
int a = sc.nextInt() ;
System.out.print("请输入矩阵的列宽:");
int b = sc.nextInt() ;
double[][] x = new double[a][b] ;
for(int i=0;ilt;a;i++){
for(int j=0;jlt;b;j++){
System.out.print("请输入元素x["+i+"]["+j+"]的值:" );
x[i][j] = sc.nextDouble() ;
}
}
return x ;
}
public double[][] multiply(double[][] x,double[][] y){
double[][] result = null ;
int a = x[0].length ;
int b = y.length ;
if(a != b){
System.out.println("输入的维数不匹配,不能进行运算");
}else{
int c = x.length ;
int d = y[0].length ;
result = new double[c][d] ;
for(int i=0;ilt;c;i++){
for(int j=0;jlt;d;j++){
double sum = 0 ;
for(int k=0;klt;a;k++){
sum += x[i][k]*y[k][j] ;
}
result[i][j] = sum ;
}
}
}
return result ;
}
public void print(double[][] x){
System.out.println("矩阵为:");
for(int i=0;ilt;x.length;i++){
for(int j=0;jlt;x[i].length;j++){
System.out.print(x[i][j] + " ") ;
}
System.out.println();
}
}
}
测试类:
public class TestMatrix {
public static void main(String[] args) {
Matrix m = new Matrix() ;
//double[][] x = {{1,2},{3,2}} ;
//double[][] y = {{1,2,1},{2,3,3}} ;
System.out.println("创建第一个数组:") ;
double[][] x = m.create() ;
m.print(x) ; //用来验证输入的是否和你一样的,没啥作用
System.out.println("创建第二个数组:");
double[][] y = m.create() ;
m.print(y) ; //用来验证输入的是否和你一样的,没啥作用
double[][] result = m.multiply(x, y) ;
if(result == null){
return ; //如果输入的矩阵不能运算就不输出结果了。
}
m.print(result) ;
}
}
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。 Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
上一篇:找质数java实现代码 找质数java实现代码怎么做
栏 目:Java编程
下一篇:没有了
本文地址:https://www.xiuzhanwang.com/a1/Javabiancheng/17354.html
您可能感兴趣的文章
- 04-10找质数java实现代码 找质数java实现代码怎么做
- 04-10前端写java代码 java写前端还是后端
- 04-10java改变字体代码 java怎么改变字体
- 04-10java学习代码库 java代码教学
- 04-10b2bjava开源代码的简单介绍
- 04-09java视频下载代码解释 java下载网页视频
- 04-09简易教务系统java代码 简易教务系统java代码大全
- 04-09java遮罩层代码 java面板
- 04-09对话框代码java java对话框分为______和_______两种
- 04-09java堆的基本代码 java 堆的结构
阅读排行
本栏相关
- 04-10矩阵乘法java代码 java编写矩阵乘法
- 04-10找质数java实现代码 找质数java实现代
- 04-10前端写java代码 java写前端还是后端
- 04-10java改变字体代码 java怎么改变字体
- 04-10java学习代码库 java代码教学
- 04-10b2bjava开源代码的简单介绍
- 04-09java视频下载代码解释 java下载网页视
- 04-09简易教务系统java代码 简易教务系统
- 04-09java遮罩层代码 java面板
- 04-09对话框代码java java对话框分为______和
随机阅读
- 08-05修改DedeCMS自动获取标题的长度
- 08-05如何在DEDECMS网站栏目中增加统计文章
- 01-10java编程实现屏幕截图(截屏)代码总结
- 01-10html 基于 canvas 实现的一个截图小dem
- 01-10详解c# AutoMapper 使用方式
- 01-10C语言实现2048游戏代码
- 01-10vc获取计算机名和ip地址的方法
- 01-10C++ 二叉树的镜像实例详解
- 01-10在Linux下编译C或C++程序的教程
- 01-10C++智能指针实例详解