程序如下:
public class Matrix {
private int row=3,column=3;
private int data[][];
public Matrix(int m,int n){
data=new int[m][n];
}
public Matrix(int data[][]){
this.data=data;
}
public void setData(int data[][]){
this.data=data;
}
public int [][] getData(){
return data;
}
public void setData(int row,int column,int element){
data[row][column]=element;
}
public int getData(int row,int column){
return data[row][column];
}
public Matrix transpose(){
Matrix tem=new Matrix(3,3);
//int j=0;
for(int i=0;i<row;i++)
for(int j=0;i<column;j++){
tem.data[j][i]=data[i][j];
}
return tem;
}
public static Matrix transpose(Matrix matrix){
Matrix tem=new Matrix(3,3);
for(int i=0;i<matrix.row;i++)
for(int j=0;i<matrix.column;j++){
tem.data[j][i]=matrix.data[i][j];
}
return tem;
}
public Matrix add(Matrix other){
for(int i=0;i<row;i++)
for(int j=0;i<column;j++)
data[i][j]+=other.data[i][j];
return this;
}
public static Matrix add(Matrix first,Matrix second){
for(int i=0;i<first.row;i++)
for(int j=0;i<first.column;j++)
first.data[i][j]+=second.data[i][j];
return first;
}
public String toString(){
String str="";
for(int i=0;i<row;i++){
for(int j=0;i<column;j++){
str=str+data[i][j]+" ";//编译时显示这个地方有问题
}
str=str+'\n';
}
return str;
}
public static void main(String[]args){
int[][] simple={{1,2,3},{4,5,6},{7,8,9}};
Matrix Ma=new Matrix(simple);
System.out.println(Ma.toString());//这里也有问题
}}怎么解决啊?
public class Matrix {
private int row=3,column=3;
private int data[][];
public Matrix(int m,int n){
data=new int[m][n];
}
public Matrix(int data[][]){
this.data=data;
}
public void setData(int data[][]){
this.data=data;
}
public int [][] getData(){
return data;
}
public void setData(int row,int column,int element){
data[row][column]=element;
}
public int getData(int row,int column){
return data[row][column];
}
public Matrix transpose(){
Matrix tem=new Matrix(3,3);
//int j=0;
for(int i=0;i<row;i++)
for(int j=0;i<column;j++){
tem.data[j][i]=data[i][j];
}
return tem;
}
public static Matrix transpose(Matrix matrix){
Matrix tem=new Matrix(3,3);
for(int i=0;i<matrix.row;i++)
for(int j=0;i<matrix.column;j++){
tem.data[j][i]=matrix.data[i][j];
}
return tem;
}
public Matrix add(Matrix other){
for(int i=0;i<row;i++)
for(int j=0;i<column;j++)
data[i][j]+=other.data[i][j];
return this;
}
public static Matrix add(Matrix first,Matrix second){
for(int i=0;i<first.row;i++)
for(int j=0;i<first.column;j++)
first.data[i][j]+=second.data[i][j];
return first;
}
public String toString(){
String str="";
for(int i=0;i<row;i++){
for(int j=0;i<column;j++){
str=str+data[i][j]+" ";//编译时显示这个地方有问题
}
str=str+'\n';
}
return str;
}
public static void main(String[]args){
int[][] simple={{1,2,3},{4,5,6},{7,8,9}};
Matrix Ma=new Matrix(simple);
System.out.println(Ma.toString());//这里也有问题
}}怎么解决啊?
jdk1.5.0_09 我是在netbean环境下编译的
deps-jar:
Warning: Matrix.java modified in the future.
Compiling 1 source file to G:\java\Matrix\build\classes
compile-single:
run-single:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at Matrix.toString(Matrix.java:57)
at Matrix.main(Matrix.java:66)
Java Result: 1
成功生成(总时间:0 秒)
for(int j = 0; j < column; j++)
int temple,k;
for(int i=0;i<row;i++){
k=0;
temple=0;
while(k<row){
for(int j=0;j<column;j++){
temple+=this.data[i][j]*other.data[j][k];
}
this.data[i][k]=temple;
temple=0;
k++;
}
}
return this;
}