Как умножить две одномерные матрицы с помощью JAMA?
Это может быть немного глупым вопросом, и я также мог неправильно понять, как лучше всего подойти к этой проблеме, но я по сути хочу сделать следующее:
Я хочу умножить следующие матрицы вместе, чтобы получить результат -0,8. Однако в идеале я хотел бы сделать это, используя функцию JAMA. Пока у меня есть следующее, и я думаю, что я почти там, это всего лишь последний шаг, на котором я застрял..
// Create the two arrays (in reality I won't be creating these, the two 1D matrices
// will be the result of other calculations - I have just created them for this example)
double[] aArray = [0.2, -0.2];
double[] bArray = [0, 4];
// Create matrices out of the arrays
Matrix a = new Matrix( aArray, 1 );
Matrix b = new Matrix( bArray, 1 );
// Multiply matrix a by matrix b to get matrix c
Matrix c = a.times(b);
// Turn matrix c into a double
double x = // ... this is where I'm stuck
Любая помощь в этом была бы очень признательна. Заранее спасибо!
3 ответа
Вы имеете в виду использование get?
double x = c.get(0, 0);
Похоже, вы ищете
double x = c.get(0, 0);
Кроме того, ваши матрицы имеют несовместимые размеры для умножения. Казалось бы, вторая матрица должна быть построена так:
Matrix b = new Matrix( bArray, bArray.length );
Вы можете просто использовать метод get():
double x = c.get(0,0);
Обратите внимание, что вы получите IllegalArgumentException, поскольку вы пытаетесь умножить два вектора строки. От times()
документация:
java.lang.IllegalArgumentException - Matrix inner dimensions must agree.
Вы, вероятно, хотите превратить второй массив в вектор-столбец.