Вычтите 1 x M матрицу из N x M матрицы в ejml
Предполагая, что объекты SimpleMatrix 1 x M (A) и N x M (B) в ejml, существует ли простой способ вычесть A из B? Я искал способ повторить строки A, чтобы быть размером B, но не нашел способ сделать это легко.
SimpleMatrix A = new SimpleMatrix(1, 2);
SimpleMatrix B = new SimpleMatrix(2, 2);
A.set(1.0);
B.setRow(0, 0, 2.0, 2.0);
B.setRow(1, 0, 4.0, 4.0);
// Throws java.lang.IllegalArgumentException
// The 'a' and 'b' matrices do not have compatible dimensions
SimpleMatrix C = B.minus(A);
// Expecting
// 1 1
// 3 3
Многие ответы используют matlab ( здесь и здесь), но я не смог найти простой синтаксис для ejml.
1 ответ
Согласно документам:
Объединит A и B вдоль столбцов, а затем объединит результат с C вдоль строк. [А, В, С]
Таким образом, вы можете определить уравнение, которое будет строить матрицу из повторяющихся строк с подобным (я не знаю, N
ценность B
матрица):
A.equation("A = [A,A,A]")
или же
A.equation("A = [A,A,A]", "A")
Другой вариант заключается в использовании SimpleBase.concatColumns(SimpleBase...)
это выглядит так:
A = A.concatColumns(A,A)
Предполагая, что А 1xM
это произведет 3xM
матрица и сохранить его в A
, Если вы хотите построить такой массив динамически, вы можете просто объединить "A" N раз (без конечной комы, конечно) или пройти N - 1
временная матрица A
функционировать.
ОБНОВИТЬ
Извините, поздно я ошибочно предположил, что A - это вектор строки, поскольку в векторе столбцов вместо запятой используются запятые, как описано в документации.