我的主类要求转置我预先存在的矩阵。我明白了,但我无法返回 Matrix 对象。给出类型不匹配 - 无法从 int[][] 转换为矩阵的错误
。
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/