Как я могу получить квадратную матрицу и поместить ее в другую матрицу? - PullRequest
0 голосов
/ 05 июня 2019

Мне нужно решить эту проблему, мне нужно получить квадрат каждого элемента матрицы и поместить его в другую матрицу. Оба имеют одинаковый размер 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 и случайные значения внутри):

matrix1: (0,0)=2 (0,1)=3 (1,0)=5 (1,1)=10

matrix2: (0,0)=4 (0,1)=9 (1,0)=25 (1,1)=100

Что я получаю:

matrix1: (0,0)=2 (0,1)=3 (1,0)=5 (1,1)=10

matrix2: (0,0)=2 (0,1)=3 (1,0)=5 (1,1)=10

Ответы [ 2 ]

0 голосов
/ 05 июня 2019
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] +  "  " );
        }
    }

Я пытался воссоздать вашу ситуацию, и, похоже, она работает с сомнением, возможно, где-то есть опечатка или логическая ошибка, которая вызывает у вас некоторые проблемы.Попытка сделать отступ в вашем коде, чтобы упростить его просмотр

0 голосов
/ 05 июня 2019

Вы можете попробовать использовать метод Math.pow.

matrix2[i][j] = Math.pow(matrix1[i][j], 2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...