- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将一些 matlab 代码转换为 C++
我正在使用 Eigen这是一个很棒的库(如果你不知道就试试吧)
但我正在尝试转换这一行:
x = B/A
与
B = rand(7,20);
A = rand(1,20);
Matlab 中的代码没有问题,它返回一个数组 (1x7)
使用 Eigen(这里是代码:
#include <Eigen/Core>
#include <Eigen/Dense>
#include <iostream>
Matrix<double, Dynamic, Dynamic> A(7,20);
Matrix<double, Dynamic, Dynamic> B(1,20);
cout<< A.colPivHouseholderQr().solve(B);
我得到一个断言失败:
rhs.rows() == dec.rows()
看来我只能解决相同行数的矩阵系统?
我的数学有点受限,但是无论如何有办法解决吗?
我也试过这段代码:
cout << (A.transpose() * A).ldlt().solve(A.transpose() * B)
和
cout <<A.jacobiSvd(ComputeThinU | ComputeThinV).solve(B)
谢谢
杰夫
最佳答案
问题是:
在 MATLAB 中,B/A
solves the equation xA=B
。
在 Eigen 中,solve
方法求解方程 Ax=B
。在 MATLAB 中,这将表示为 x = A\B
。
它们非常不同 - 矩阵乘法不是可交换的!
一般来说,矩阵乘积Ax
与A
的行数相同,与x
的列数相同。因此,要使等式 Ax=B
有意义,A
的行数必须与 B
相同(这是您的断言错误所在来自)。
现在两者通过等式 B/A = (A'\B')'
相关联,因此您可以执行类似(未经测试的代码)
Matrix<double, Dynamic, Dynamic> C = A.transpose().fullPivLu().solve(B.transpose());
cout << C.transpose();
关于c++ - Eigen : solving A=xB (Assert failed),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24164275/
我对Python很陌生,在这段代码中,我试图编写一个代码来读取包含城市列表及其各自的经度和纬度的文本文件,然后将它们作为包含城市列表的字典返回。城市,包括其经度和纬度。 文本文件如下所示: Name:
澄清一下,我想匹配: ab aabb aaabbb ... 这在 Perl 中有效: if ($exp =~ /^(a(?1)?b)$/) 要理解这一点,请看一下字符串,就好像它是从外向内生长的,而不
澄清一下,我想知道如何使用正则表达式来匹配: ab aabb aaabbb ... 我刚刚发现这在 Perl 中有效: if ($exp =~ /^(a(?1)?b)$/) 要理解这一点,请看一下字符
我已将 Individual.XML 放置在目录中:Files\InputApps - - **A123** 只是想打印出“A123”,但我收到此错误: Exception in thread "
我正在尝试将一些 matlab 代码转换为 C++ 我正在使用 Eigen这是一个很棒的库(如果你不知道就试试吧) 但我正在尝试转换这一行: x = B/A 与 B = rand(7,20); A =
我正在尝试使用 R 中的 plm 包为面板数据开发固定效应回归模型。我想获得固定效应和回归变量之间的相关性。 Stata 输出中的 corr(u_i, Xb) 之类的东西。如何在 R 中获取它?我尝试
如何在字符串中替换这些字符:r'\xb0' 为 r'\260',我已经尝试过: test = u'\xb0C' test = test.encode('latin1') test = test.rep
我对 python 很陌生,对做高斯回归很感兴趣。我在 py3.6 和 SKlearn 0.19 下。 我有简单的代码,但我得到了一个关于预测调用的 cdist 中向量维度的错误。我知道我的输入有问题
好吧,我必须编写一个程序来计算一个骑士(在棋盘上)从 (xb, yb) 到 (xe, ye) 可以走的路线数。我不确定我哪里出错了。好吧,我知道计数不会添加任何东西,并且会在我的代码中保持为 0,但我
看下面的片段: >>> import unicodedata >>> from unicodedata import normalize, name >>> normalize('NFKD', u'\
我用 Java 创建了一个独立的 Web 服务客户端。我能够正确生成 WSDL,但是当我执行我的 run.bat 文件时,我得到上面的异常,下面是异常。我用谷歌搜索了标题中显示的异常,并找到了一个包含
我是一名优秀的程序员,十分优秀!