Skip to content

java-b/Lab-6

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

Lab-6

 本节目标:

 实现一个模拟 MATLAB 的矩阵计算器,可以进行矩阵的点乘和相加

矩阵计算器(Tiny Matlab)

Matlab 是一个著名的数学运算工具包,在各行各业有广泛的应用。我校是国内少数几个购买了它的正版版权的高校,在这一方面比西南某高校跑得快。感兴趣的同学可以到 MVLS 下载试用,无论是解线性代数还是搞人工智能、搞物理模拟还是做光学实验,都堪称神器。

本节 Lab 旨在模拟进行 Matlab 的基础矩阵运算,所有矩阵的表示、格式均仿照 Matlab

(好吧,其实我想说的是,这个 Lab 的矩阵表示看上去比较反人类,但这锅我不背!)

矩阵的表示

我们用 分号 分割矩阵的行,用 逗号 分割矩阵的列。

例如,下面的矩阵:

| 1 2 3 4 |
| 5 6 7 8 |

可以表示为:

[1,2,3,4;5,6,7,8]

矩阵运算的表示

我们用 + 表示矩阵 加法,用 * 表示矩阵 点乘

例如,下面的矩阵运算:

| 1 2 3 |     | 9 8 7 |
| 4 5 6 |  *  | 6 5 4 |
| 7 8 9 |     | 3 2 1 |    

可以表示为

[1,2,3;4,5,6;7,8,9]*[9,8,7;6,5,4;3,2,1]

矩阵的输出

输入矩阵时,为了方便,我们采取了 [a,b,c; d,e,f] 这种类型的标记,但是输出时,我们采取正常的矩阵输出形式。也就是传统的 先输出行,再输出列

例如对于矩阵:

| 1 2 3 4 |
| 5 6 7 8 |

可以输出为:

1 2 3 4
5 6 7 8

题目要求

从 Github 下载题目,打开 LabSolution 中的 MatrixCalculator 类,在其中编写代码。

  • 矩阵在程序中使用 二维数组 表示
  • 函数 dot()sum() 分别用于计算矩阵的 点乘相加
  • 函数 calculate() 用于 解析 输入的矩阵运算表达式
    • 提示:从表达式解析出矩阵,保存到两个二维数组中,然后根据运算符选择调用 dot() 或者 sum() 函数
  • 函数 print() 用于按照格式 输出 一个矩阵
    • 提示:该函数不需要手动实现
  • 主函数 main()
    • 提示:你可以通过 Scanner 类从控制台读取输入,然后调用 calculate() 函数计算表达式结果,并使用 print() 函数打印结果。
  • 不用检查非法输入

对于从命令行输入的一个矩阵运算表达式,要求计算它的值,并输出到控制台。

例如对于 点乘 的输入样例:

[1,0;0,1]*[9,8;7,6]

输出应该为:

9 8
7 6

对于 加法 的输入样例:

[1,2;3,4]+[4,3;2,1]

输出应该为:

5 5
5 5

代码检查与提交

你可以在 LabSolutionmain 函数中调用 validate() 方法,它将自动检查你的结果。

main 函数里到底是用 Scanner 手动输入还是用 validate() 自动验证? Scanner 输入是给大家调试用的,交之前请用 validate() 验证。

如果结果正确,请提交到 FTP

About

矩阵计算器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages