利用二维数组(double[])实现一个矩阵类:Matrix。要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为value;(2)get(int row,int col):取第row行第col列的元素;(3)width():返回矩阵的列数;(4)height():返回矩阵的行数;(5)Matrix add(Matrix b):返回当前矩阵与矩阵b相加后的矩阵;(6)Matrix multiply(Matrix b):返回当前矩阵与矩阵b相乘后的矩阵。(7)Matrix transpose():返回当前矩阵的转置矩阵;(8)getMax():返回矩阵中的最大值及其所在行和列;(9)print():以行和列的形式打印出当前矩阵。

代码

import java.text.DecimalFormat;
import java.util.Scanner;public class Main {public static void main(String[] args) {DecimalFormat d = new DecimalFormat("#"); // 控制输出格式,无小数Scanner cin = new Scanner(System.in);Matrix matrix = new Matrix(cin.nextInt(), cin.nextInt());Matrix t; // 暂存矩阵matrix.input(cin); // 输入信息System.out.println("row:" + matrix.height() + " " + "column:" + matrix.width());matrix.set(cin.nextInt(), cin.nextInt(), cin.nextDouble());System.out.println("after set value:");System.out.print(matrix.toString());int r = cin.nextInt();int c = cin.nextInt();System.out.println("value on (" + r + "," + c + "):" + d.format(matrix.get(r,c)));Matrix tmp = new Matrix(cin.nextInt(),cin.nextInt());tmp.input(cin);System.out.println("after add:");t = matrix.add(tmp);t.print();System.out.println("矩阵中的最大值:" +  t.getMax());System.out.println("after multiply:");tmp = new Matrix(cin.nextInt(),cin.nextInt());tmp.input(cin);t = matrix.multiply(tmp);t.print();System.out.println("矩阵中的最大值:" + t.getMax());System.out.println("after transpose:");t = matrix.transpose();t.print();System.out.println("矩阵中的最大值:" + t.getMax());}
}class Matrix{private int row, col;private double[][] d;public Matrix(int row, int col) {this.row = row;this.col = col;d = new double[row][col];}public void input(Scanner cin) {for(int i = 1; i <= this.row; i++) {for(int j = 1; j <= this.col; j++) {double val = cin.nextDouble();this.set(i,j,val);}}}// 将第row行第col列的元素赋值为valuepublic void set(int row, int col, double value){d[--row][--col] = value;}// 取第row行第col列的元素public double get( int row, int col ){return d[--row][--col];}// 返回矩阵的列数public int width(){return col;}// 返回矩阵的行数public int height(){return row;}// 返回当前矩阵与矩阵b相加后的矩阵public Matrix add( Matrix b){Matrix t = new Matrix(this.row, this.col);for(int i = 1; i <= this.row; ++ i){for(int j = 1; j <= this.col; ++ j ){t.set(i, j, this.get(i, j) + b.get(i, j));}}return t;}// 返回当前矩阵与矩阵b相乘后的矩阵public Matrix multiply( Matrix b){Matrix t = new Matrix(this.row, b.width());for(int i = 1; i <= this.row; ++ i){for(int j = 1; j <= b.width(); ++ j ){double tt = 0;for(int k = 1; k <= this.col; k ++ ){tt += this.get(i, k) * b.get(k, j);}t.set(i, j, tt);}}return t;}// 返回当前矩阵的转置矩阵public Matrix transpose(){Matrix t = new Matrix(this.row, this.col);for( int i = 1; i <= this.row; i ++ ){for ( int j = 1; j <= this.col; j ++ ){t.set(j, i , this.get(i, j));}}return t;}// 返回矩阵中的最大值及其所在行和列public String getMax(){DecimalFormat d = new DecimalFormat("#"); // 控制输出格式,无小数double max = this.get(1,1);int maxr = 1; // 最大值所在行int maxc = 1; // 最大值所在列for(int i = 1; i <= this.row; ++ i){for( int j = 1; j <= this.col ; ++ j ){if( max < this.get(i, j) ){max = this.get(i, j);maxr = i;maxc = j;}}}return "max: [ " + maxr + ", " + maxc + " ] = " + d.format(max);}public void print(){DecimalFormat d = new DecimalFormat("#"); // 控制输出格式,无小数for(int i = 1; i <= this.row; ++ i){for( int j = 1; j <= this.col - 1; ++ j ){System.out.print(d.format(this.get(i, j)) + " ");}System.out.println(d.format(this.get(i, col)));}}
}

利用二维数组(double[])实现一个矩阵类:Matrix。要求提供以下方法:(1)set(int row, int col, double value):将第row行第col列的元素赋值为valu相关推荐

  1. 已知一个二维数组A 表示一个矩阵,求AT。 其中,AT 表示矩阵的转置。矩阵转置的含义:表示把一个矩阵行列互换。

    已知一个二维数组A 表示一个矩阵,求AT. 其中,AT 表示矩阵的转置.矩阵转置的含义:表示把一个矩阵行列互换. //传入需要验证的数组,在main里面调用该方法public static void ...

  2. 利用二维数组实现一个矩阵类:Matrix

    利用二维数组实现一个矩阵类:Matrix.要求提供以下操作: (1)set(int row, int col, double value):将第row行第col列的元素赋值为value: (2)get ...

  3. java利用二维数组查找鞍点_java找二维数组的鞍点

    LOGO 制作者: 制作者: 班级: 班级: 学号: 学号: 指导老师: 指导老师: 一.设计要求 求一个二维数组中的鞍点,即 该位置上的元素在该...... 54,98 19,32,34,65,34 ...

  4. C++利用二维数组求解线性方程组

    C++利用二维数组求解线性方程组 今天给大家介绍二维数组,以下介绍来自二维数组百度百科 二维数组本质上是以数组作为数组元素的数组,即"数组的数组",类型说明符 数组名[常量表达式] ...

  5. java二维数组水平翻转,C 语言 利用二维数组实现对输入的数组进行翻转

    C 语言 利用二维数组实现对输入的数组进行翻转(帮助理解对图像翻转编辑原理) /* ?输入几行几列数字和翻转方式,如: 3 4 0即代表3行4列,左右翻转: 6 5 1即代表6行5列,上下翻转. 输入 ...

  6. C语言错误c2063,请教C语言中关于将二维数组复制到一个三维数组的问题

    请教C语言中关于将二维数组复制到一个三维数组的问题 小白正在填写一段代码,是有点类似与俄罗斯方块的一段游戏代码,代码如下 要求在增加参数,变量和函数的情况下完成此代码,只能填写// write app ...

  7. PHP 二维数组根据另一个二维数组的值进行排序

    PHP 二维数组根据另一个二维数组的值进行排序 二维数组根据另一个二维数组的某个值进行排序 例子:有以下两个二维数组 goods:道具数组,记录了道具id.道具名称.道具价值 goodsUseTime ...

  8. JAVA利用二维数组横版和竖版输出古诗

    平台:java eclipse 内容:利用二维数组分别横版和竖版输出杜牧的古诗<有寄>. 知识点: 1.创建二维数组两种方式 (1)声明二维数组语法: 数组元素的类型 数组名字[][]; ...

  9. Java_数组(声明、创建、初始化、复制、增强型for循环、二维数组、排序、Arrays类)

    Java_数组 数组的基本概念 声明数组 创建数组 初始化数组 方法一:分配空间与赋值分步进行 方法二:分配空间,同时赋值 增强型for循环 复制数组 二维数组 排序 Arrays类 copyOfRa ...

最新文章

  1. SAP Spartacus里,点击checkbox右边的span文本,不会触发checkbox勾选的原因
  2. 乌班图 之 常用操作命令(二)
  3. mysql sign_mysql - 随笔分类 - signheart - 博客园
  4. 手机端局部滚动问题 overflow-y:auto
  5. 机器学习Scikit-Learn基本操作实战
  6. 把握linux内核设计思想系列【转】
  7. 龙芯提供的jna-4.5.2,没有libjnidispatch.so,也能用
  8. 完稿—单片机原理与接口技术
  9. Inspinia的version 2.4模板使用的谷歌字体加载很慢问题解决
  10. VI设计创意的方法与技巧
  11. 广东取消英语和计算机考试,广东停考全国英语等级考试、全国计算机等级考试...
  12. Gstreamer 命令行
  13. 想设计亿万级高并发架构,你要先知道高并发是什么?(转载)
  14. P3387ybtoj【图论】4章1题【【模板】缩点】
  15. JavaMailSenderImpl 使用465端口配置
  16. 计算机网络期末复习提纲(全知识点总结)
  17. 详解爬电距离和电气间隙
  18. 理解GCN(二)从拉普拉斯矩阵到Ncut问题
  19. 怎么使用迅捷文字转语音软件转换文字
  20. 计算机组成原理(第三版)唐朔飞-第五章输入输出系统-课后习题

热门文章

  1. C语言写的md5函数
  2. android原生输入法皮肤,天了噜搜狗输入法安卓版皮肤竟然会说话
  3. 鱼鹰软件签约武汉知名公关全产业链机构创联凯尔
  4. 【C#】Form窗体
  5. 交叉编译 arm-poky-linux-gnueabi-gcc libmodbus库笔记
  6. mysql 查询一个订单下多个商品_如何商品信息多个sql查询搜索
  7. CSS3,JS制作网页动画(时空穿梭,魔方,坠落星星,全屏樱花特效)
  8. java飞鸽源码_java版本的飞鸽编写(一)
  9. Linux常用命令整理(适合初学)
  10. 开源OA协同办公平台搭建教程:服务管理中接口的调用权限