public class Matrix
{
int rows;
int cols;
double data[][];
Matrix()
{
rows = 4;
cols = 4;
data = new double[rows][cols];
for(int i=0;i<rows;i++)
{
for(int j=0;j<cols;j++)
{
double dNum=Math.random();
data[rows][cols]=dNum*100;
}
}
}
Matrix(int rows,int cols)
{
this.rows = rows;
this.cols = cols;
System.out.println("请依次输入矩阵:");
for(int i=0;i<rows;i++){
for(int j=0;j<cols;j++){
data[j]=KeyInput.readInt();
}
}
}
Matrix(introws,int cols,double data[][])
{
this.rows = rows;
this.cols = cols;
data = new double[rows][cols];
this.data=data;
}
double getData(int row,int col)
//获取某元素值的方法
{
double i = data[row-1][col-1];
return i;
}
void setData(int row,int col,double value)
//设置某元素值的方法
{
data[row-1][col-1]=value;
}
void multiply(Matrix m)
//以及计算两个矩阵的乘积的方法
{
int i,j,k;
int temp=0;
if(rows!=m.cols)
System.out.printf("两矩阵不能相乘");
else
for(i = 0;i<rows;i++)
{
for(k = 0;k<cols;k++)
{
for(j = 0;j<cols;j++)
{
temp+=this.data[j]*m.data[j];
}
this.data[k]=temp;
}
}
}
public String toString(){
System.out.println("矩阵:");
for(int i=0;i<rows;i++){
for(int j=0;j<cols;j++){
System.out.print(data[j]+" ");
}
System.out.println();
}
return null;
}
}
//测试类
public class MatrixTest
{
public static void main(String[] args)
{
Matrix m1 = new Matrix();
Matrix m2 = new Matrix(4,4);
m1.toString();
m2.toString();
System.out.println("m1和m2相乘后为:");
m1.multiply(m2);
m1.toString();
}
}
|