java - 如何返回不同类中的转置矩阵?

标签 java arrays matrix

我的主类要求转置我预先存在的矩阵。我明白了,但我无法返回 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/

相关文章:

c++ - C++中返回多维数组的函数

java - 考虑重复,在数组中存储随机值

matlab - 在matlab中逐列计算相关性的快速方法是什么

C - 关于 EOF 功能

java - 更新 TableView 行外观

Java强制转换?

java - 嵌套 for-while 循环超出时间限制

java - 未找到 Zip header ,可能不是 zip 文件 - Zip4j、java

c++ - jsoncpp 只写一个元素的json数组

matlab - 将空矩阵分配给Matlab中的空子矩阵