【问题标题】:How to visualize an entire matrix when debugging Java with IntelliJ IDEA?使用 IntelliJ IDEA 调试 Java 时如何可视化整个矩阵?
【发布时间】:2018-09-18 09:54:22
【问题描述】:

我正在使用 IntelliJ IDEA 调试 Java 程序,该程序大量使用了 double[][] 矩阵。我想找到一种在调试过程中轻松显示这些矩阵的方法,而不仅仅是:

但更像是一个完整的矩阵,例如这样的

这样的可视化应该显示在调试器变量的窗口中。

我已经搜索了很多方法,但是当使用 PyCharm 在 Python 中做这样的事情看起来很简单时,使用 Java/IntelliJ IDEA 似乎并不容易。我也尝试自定义 Java 类型渲染器,但没有成功。我该怎么做?

【问题讨论】:

    标签: java debugging matrix intellij-idea


    【解决方案1】:

    请在您的任何班级中添加此方法:

    public static String get2DArrayPrint(int[][] matrix) {
        String output = new String();
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                output = output + (matrix[i][j] + "\t");
            }
            output = output + "\n";
        }
        return output;
    }
    

    现在在调试器模式下,右键单击变量并选择视图为 -> 创建选项。它将打开类似这样的屏幕:

    现在在调试器模式下,右键单击您的变量并选择视图为 -> 您的方案名称(请查看屏幕截图)。

    完成后,请在调试器模式下右键单击变量并选择“查看文本”。该方案将应用于程序中的所有二维阵列,无需任何额外的努力。我希望这会有所帮助。

    【讨论】:

    • 但是我想要一个更直接的方法,不需要修改主代码中的变量...我只想在调试器中看到。
    • 但这可能会对您有所帮助。让我们看看我们是否可以用 View As -> Create.. 选项做点什么。
    • 这不适用于较小的矩阵,仅当矩阵大小超过 8 时才启用查看。是否也可以查看较小的矩阵?
    【解决方案2】:

    目前,我发现了一个有用的解决方法,即使用 ejml 库的 DMatrixRMaj 类型。

    我只是使用这个个性化的 Java 类型渲染器(通过右键单击变量/自定义数据视图/Java 类型渲染器访问部分

    然后我右键单击矩阵并选择查看文本。数组有一个简单的版本。

    【讨论】:

    • 这不适用于较小的矩阵,仅当矩阵大小超过 8 时才启用查看。是否也可以查看较小的矩阵?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2018-06-13
    • 2019-11-28
    • 1970-01-01
    • 2018-08-30
    • 2017-11-15
    相关资源
    最近更新 更多