У меня проблема с вычитанием матрицы в Python и Java.Я проделал одинаковые шаги на обоих языках программирования, но результаты разные.
import numpy as np
array1 = [[1,3], [5,6],[7,8]]
array1 = np.transpose(array1)
array2 = [[1,0,1]]
array3 = np.subtract(array2,array1)
print(array3)
, который выводится в виде матрицы:
[[ 0 -5 -6]
[-2 -6 -7]]
Это работает нормально и так, как мне нужно.Но мне нужен этот вывод в Java.Поэтому я попробовал следующий фрагмент кода:
double [][] array1 = new double[][]{
{1,2},
{3,4},
{5,6}
};
double [][] array2 = new double[][]{
{1,0,1}
};
array1 = np.T(array1);
double [][] vysl = np.subtract(array2, array1);
, где
public static double[][] subtract(double[][] a, double[][] b) {
int m = a.length;
int n = a[0].length;
double[][] c = new double[m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
c[i][j] = a[i][j] - b[i][j];
}
}
return c;
}
public static double[][] T(double[][] a) {
int m = a.length;
int n = a[0].length;
double[][] b = new double[n][m];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
b[j][i] = a[i][j];
}
}
return b;
}
Но результат другой матрицы:
for (int i = 0; i < vysl.length; i++)
{
for (int y = 0; y < vysl[0].length; y++)
System.out.print(vysl[i][y] + " ");
System.out.println("");
}
0.0 -3.0 -4.0
Я отобразил матрицу сэтот 2D цикл.Эта матрица имеет только 1 строку с 3 столбцами, но предыдущая матрица из pythom имела 2 строки и 3 столбца.Подскажите, пожалуйста, что я делаю неправильно, как я могу получить матрицу с 2 строками и 3 столбцами в Java?Как я могу реализовать правила вещания в Java?