我用eigen库写了下面的代码
#include <iostream>
#include <Eigen/Dense>
using namespace Eigen;
using namespace std;
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
MatrixXd b(3,6);
b << 1,2,3,4,5,6,
1,4,3,4,4,6,
6,5,4,3, 2,1;
std::cout << "单位阵:\n" << ((b*b.transpose()).inverse())*(b*b.transpose())<< std::endl;
}
输出如下
单位阵:
1 -5.55112e-015 -8.88178e-016
1.33227e-015 1 0
2.22045e-016 -2.22045e-016 1
为什么输出的不是单位阵啊,但是我试了用2*5的矩阵输出的就是单位阵了,这是为啥,小菜鸡的实习编程急需解决。