다른 서브 매트릭스 또는 서브 벡터로부터 벡터를 생성하려고합니다. 나는 다음과 같은 시도했지만이 오류를 error: no match for ‘operator=’
다른 서브 벡터 또는 서브 매트릭스에서 boost :: numeric :: ubas 벡터 생성하기
int m_size = 10;
boost::numeric::ublas::matrix<double> u_a(m_size, m_size);
boost::numeric::ublas::vector<double> u_v(m_size);
for (int i = 0; i < m_size; i = i + 1){
for (int j = 0; j < m_size; j++){
double rand1 = (rand()%10+1) + ((double) rand()/(RAND_MAX));
u_a(i,j) = rand1;
}
double rand3 = (rand()%10+1) + ((double) rand()/(RAND_MAX));
u_v(i) = rand3;
}
for (int i = 0; i < m_size; i = i + 1){
boost::numeric::ublas::matrix<double> u_p(i, i);
boost::numeric::ublas::vector<double> u_v2(i);
u_p = subrange(u_a, 0, i, 0, i);
// I have tried following two
//u_v2 = subrange(u_a, 0,1,0,5);
//u_v2 = subrange(u_v, 1,i);
}
당신은 [MCVE] (http://stackoverflow.com/help/mcve를 게시 할 수) 컴파일러와 Boost 버전을 지정 하시겠습니까? Boost 1.59가 적용된 코드는 [CoLiRu] (http://coliru.stacked-crooked.com/a/0b086dbf82dcf2f9)에서 작동합니다. – rhashimoto
리눅스에서 gcc 4.8이고 부스트가 1.54 인 마지막 두 줄 중 하나의 주석 처리를 해제해야합니다. – asdfkjasdfjk