java - 从ejml中的N x M矩阵减去1 x M矩阵

标签 java matrix subtraction ejml

假设在 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

许多答案使用 matlab(herehere),但我找不到 ejml 的简单语法。

最佳答案

根据 docs :

Will concat A and B along their columns and then concat the result with C along their rows. [A,B;C]

因此,您可以定义一个方程式,该方程式将从重复的行构造一个矩阵(我不知道 B 矩阵的 N 值):

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 是行 vector ,因为它是列 vector ,使用逗号而不是分号,如文档中所述。

关于java - 从ejml中的N x M矩阵减去1 x M矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48291981/

相关文章:

java - 如何从父类获取执行的Java子类名?

c - 在c中打印出变量会改变变量的值

r - R 中高效的行式矩阵运算

r - 减去不同大小的 data.frames 和 data.tables

c++ - Qt:如何在大小写不敏感模式下减去QString的两个QSet

excel - 在 Excel 中添加和减去时间码

java - 在 Hadoop 排序中映射中的键类型不匹配

java - 请一些 Java 帮助处理 Android 源代码?

java - 使用for循环在jsp中创建动态行

c++ - 我如何着手重载 C++ 运算符以允许链接?