开发一个矩阵运算的 java 开发包,定义一个 MyMatrix 类
实现构造方法,矩阵加法,矩阵乘法,矩阵转置,打印函数
public MyMatrix(double[][] a);
public MyMatrix plus(MyMatrix B);
public MyMatrix times(MyMatrix B);
public MyMatrix transpose();
public void print(int w,int d);
其中 打印矩阵
1.起始一个空行,结束一个空行。
2.第一个参数是每一列的宽度,第二个参数是保留的小数点位数。
这道题目的难点在于矩阵的乘法,加法不是问题,对应元素相加即可。矩阵的转置,如果加上一个辅助矩阵去做的话也没啥难度。
不加辅助矩阵的矩阵转置也可以做,但需要限制矩阵的类型为n*n的呢。
对于乘法,我选择的是三层循环,最外层是控制,返回数组的行数,第二层是返回数组的列数。同时第二层第三层都是为了累加行和之积。
代码如下:
package Test2017;
import java.text.DecimalFormat;
public class MyMatrix {
double[][] a;
public MyMatrix(double[][] a){
this.a=a;
}
public MyMatrix plus(MyMatrix B){
double[][] t=B.a;
int len=t.length;
double[][] re =new double[len][t[0].length];
for(int i=0;i<a.length;i++){
for(int j=0;j<a