这让我困惑了几个小时,所以也许这里有人可以提供帮助。我正在尝试使用 uBLAS 将以下简单的 Matlab 程序翻译成 C++:
>> R = eye(4);
>> R(:,3) = R(:,4);
>> R
R =
1 0 0 0
0 1 0 0
0 0 0 0
0 0 1 1
这是我的尝试,但它不起作用:
#include <iostream>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>
using namespace boost::numeric::ublas;
int main ()
{
matrix<double> Idmx = identity_matrix<double> (4);
project (Idmx, range (0, 4), range (2, 3)) = project (Idmx, range (0, 4), range (3, 4));
std::cout << Idmx << std::endl;
int temp;
std::cin >> temp;
}
产生的输出是:
[4,4]((1,0,0,0),(0,1,0,0),(0,0,0,0),(0,0,1,1))
我不明白为什么第三行现在全为零。有人可以指出我的解决方案吗?
谢谢!