【问题标题】:Matrix transpose in java(need explanation)java中的矩阵转置(需要解释)
【发布时间】:2016-05-11 16:42:37
【问题描述】:

这是我的代码,它应该可以工作,但是当我转置和打印矩阵时,它输出相同的矩阵,而不是转置。 一些解释? 它应该改变矩阵,而不是复制和转置然后返回。 公共无效转置(){

    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++){
            Object tmp=matrix[i][j];
            matrix[i][j]=matrix[j][i];
            matrix[j][i]=tmp;
        }
}

【问题讨论】:

  • 提示:尝试在每个循环步骤后打印您的矩阵。从小矩阵开始;并为每个单元格使用不同的值。

标签: java matrix transpose


【解决方案1】:

你在内部循环中有错误的索引。

    for (int i = 0; i < n; i++) {
        for (int j = i+1; j < n; j++) {
            Object tmp = matrix[i][j];
            matrix[i][j] = matrix[j][i];
            matrix[j][i] = tmp ;
    }

【讨论】:

    【解决方案2】:

    您的代码不会转置您的矩阵,因为您正在用 matrix[i][j]=matrix[j][i]; 覆盖您的原始矩阵

    这是一种在 Java 中转置矩阵的方法:transpose double[][] matrix with a java function

    【讨论】:

      猜你喜欢
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 2018-06-04
      • 2012-11-20
      • 2021-02-27
      • 2022-08-14
      相关资源
      最近更新 更多