【问题标题】:How can I get a square matrix and put it into another matrix?我怎样才能得到一个方阵并将其放入另一个矩阵中?
【发布时间】:2019-10-20 13:47:27
【问题描述】:

我需要解决这个问题,我需要获取矩阵中每个元素的平方并将其放入另一个矩阵中。两者具有相同的 n*m 大小。

我已经尝试将它与一个保存 元素的正方形。

int n,m,i,j;
Random rm1=new Random();
int matrix1[][]=new int[n][m];
int matrix2[][]=new int[n][m];
        for (i=0;i < matrix1.length;i++){
             for(j=0;j < matrix1[i].length;j++){
                 matrix1[i][j]=rm1.nextInt(500);
            }
        }
         for (i=0;i < matrix2.length; i++){
              for(j=0;j < matrix2[i].length;j++){
                  matrix2[i][j]=matrix1[i][j]*matrix1[i][j];               
            }
        }
System.out.println("first matrix:");
       for (i=0;i<matrix1.length;i++){          
                for (j=0;j<matrix1[i].length;j++){
                    System.out.println("("+i+","+j+")=["+matrix1[i][j]+"]");
                }
            }
 System.out.println("second matrix:");
       for (i=0;i<matrix2.length;i++){          
                for (j=0;j<matrix2[i].length;j++){
                    System.out.println("("+i+","+j+")=["+matrix2[i][j]+"]");
                }
            }

它没有给我我想要的,matrix2 保持不变。

我的期望:(是 n=m=2 和里面的随机值):

矩阵1:(0,0)=2 (0,1)=3 (1,0)=5 (1,1)=10

矩阵2:(0,0)=4 (0,1)=9 (1,0)=25 (1,1)=100

我得到了什么:

矩阵1:(0,0)=2 (0,1)=3 (1,0)=5 (1,1)=10

矩阵2:(0,0)=2 (0,1)=3 (1,0)=5 (1,1)=10

【问题讨论】:

  • 你粘贴的是文本而不是确切的代码——你有像“less”和“
    ”标签这样的项目,这些标签显然永远不会编译。您能否编辑您的问题并直接从您的编辑器中复制/粘贴确切的代码(您可以使用“代码”图标来帮助格式化它)
  • 如果阅读起来不舒服,我深表歉意,我对这个网站比较陌生。
  • 不用担心,但最好从正确做事开始。我不太在意“难以阅读”(有一些令人震惊的东西被发布了!),但我主要担心的是小东西被改变或丢失了(例如,如果 '=' 被替换为 '= ='等),而这些小事情可能是导致问题的原因:)

标签: java arrays algorithm matrix multidimensional-array


【解决方案1】:

您可以尝试使用Math.pow 方法。

matrix2[i][j] = Math.pow(matrix1[i][j], 2);

【讨论】:

  • Tuve que convertir las matrices a Double,aun así no funcionó。 :(
【解决方案2】:
int n,m;
    n = 2;
    m = 3;
    int number = 0;
    int matrix1[][]=new int[n][m];
    int matrix2[][]=new int[n][m]; 

    //Fill the array one
    for (int i = 0; i < matrix1.length; i++) {
        for (int j = 0; j < matrix1.length; j++) {
            matrix1[i][j] = (int)(10 * Math.random());
        }
    }

    //Print out first array
    for (int i = 0; i < matrix1.length; i++) {
        for (int j = 0; j < matrix1.length; j++) {
            System.out.print(matrix1[i][j] +  "  " );
        }
    }

    //Populate second array with numbers in first array
    for (int i = 0; i < matrix1.length; i++) {
        for (int j = 0; j < matrix1.length; j++) {
            matrix2[i][j] = matrix1[i][j] * matrix1[i][j];

        }
    }


    System.out.println("Second array: ");

    for (int i = 0; i < matrix1.length; i++) {
        for (int j = 0; j < matrix1.length; j++) {
            System.out.print(matrix2[i][j] +  "  " );
        }
    }

我尝试重新创建您的情况,但它似乎可以正常工作,也许某处存在拼写错误或逻辑错误导致您出现问题。尝试缩进你的代码来组织它并使它更容易看到

【讨论】:

  • 我刚刚更新了带有打印功能的代码,我将尝试使我的代码适应您转录的内容。
  • 这是一个逻辑错误,感谢您让我看清楚。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-27
  • 2020-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多