假设ejml中有1 x M(A)和N x M(B)SimpleMatrix对象,是否有一种从B中减去A的简单方法?我正在寻找一种方法来重复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
答案 0 :(得分:1)
根据docs:
将沿着他们的列连接A和B,然后沿着他们的行将结果与C连接起来。 [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)
假设A为1xM
,它将生成3xM
矩阵并将其存储在A
中。如果你想动态构造这样的数组,你可以只连接“A”,N次(当然没有尾随彗差)或者将N - 1
次矩阵A
传递给函数。
<强>更新强>
很抱歉,我迟到了我错误地假设A是行向量,因为它是列向量使用comas而不是分号,如文档中所述。