これは数時間私を困惑させてきたので、多分ここの誰かが助けることができます。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))
3行目がすべてゼロになった理由がわかりません。誰かが私に解決策を教えてもらえますか?
ありがとうございました!