Это меня озадачивало несколько часов, так что, может быть, кто-то здесь может помочь.Я пытаюсь перевести следующую простую программу Matlab на C ++, используя uBLAS:
>> 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))
Я не понимаю, почему в третьем ряду теперь все нули.Может кто-нибудь подсказать мне решение?
Спасибо!