2012-02-16 4 views
2

부스트 uBLAS 매트릭스의 개별 요소의 주소를 얻을 수 있는지 궁금합니다. 이제부스트 uBLAS 매트릭스 레퍼런스

boost::numeric::ublas::matrix<char> bob(3,3); 
some_function(&bob[2][2]); 

, 물론 두 번째 줄이 작동하지 않습니다입니다 ...하지만 난 그게 싶습니다

.

의견이 있으십니까?

감사합니다.

답변

3

것이 될 간단 다음 연산자의 반환 값의 주소를 사용하지 않을까요 일 것이다? 그리고 매트릭스 레이아웃과 독립적? 예를 들어

reference operator() (size_type i, size_type j) 

: uBLAS에서 기본적으로

some_function(&bob(2,2)); 
+0

내가 너를 쫓을 지 모르겠다? 좀 더 명백하거나 설명 할 수 있겠습니까? 죄송합니다 :-( – Richard

+0

답변에 예제를 추가했습니다. – Anonymous

+0

문제의 색인을 수정했습니다. – Richard

1

기본적으로 행렬의 내부 표현은 행 주요 1D 배열입니다.

some_function(&bob.data()[i*ncol+j]

+1

? Boost uBLAS 사양 중 어느 부분에서 이것이 작동 할 것임을 나타 냅니까? – Richard

+0

m.data() 기본 밀도가 높은 저장소에 대한 참조를 반환합니다. http://www.boost.org/doc/libs/1_46_0/libs/numeric/ublas/doc/container_concept.htm#matrix. 저장소의 경우 row_major 또는 column_major라는 두 가지 유형이 있으며 기본값은 row_major입니다. 나는 그것이 어디에 지정되었는지 잊었다. 한때 lublack 루틴을 ublas 행렬이라고 불렀다. m.data()가 1D 배열의 포인터를 얻는다. – pem

관련 문제