我有一个主要班级,要求转置我现有的矩阵。我有主意,但我不能返回Matrix对象。给出错误Type Mismatch - cannot convert from int[][] to matrix
。
public class Matrix {
int numRows;
int numColumns;
int data[][];
public Matrix transpose() {
int[][] M = new int [numColumns][numRows];
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < numColumns; j++) {
M[j][i] = data[i][j];
}
}
return M;
}
最佳答案
您有两个选择。
选项1(更改退货类型):
选项1是将返回类型从Matrix
更改为int[][]
。
public int[][] transpose() {
int[][] M = new int[numColumns][numRows];
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < numColumns; j++) {
M[j][i] = data[i][j];
}
}
return M;
}
选项2(创建一个对象并返回它):
选项2是创建一个对象,并将转置矩阵添加到该对象并返回它。
public Matrix transpose() {
int[][] M = new int[numColumns][numRows];
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < numColumns; j++) {
M[j][i] = data[i][j];
}
}
return new Matrix(numColumns, numRows, M);
}
假设您的构造函数如下所示
public Matrix(int numRows, int numColumns, int[][] data) {
this.numRows = numRows;
this.numColumns = numColumns;
this.data = data;
}
关于java - 如何返回不同类中的转置矩阵?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57795487/