2014-06-06 2 views
2

약간의 문제가 있습니다. matlab/octave에서 C++로 프로그램을 변환하고 있습니다. 이 프로그램은 일부 행렬 조작을 다루고 있습니다. 우리가 같은 행렬을 정의 할 수 있습니다 MATLAB/옥타브에서 : :이 재현 할고유 라이브러리로 텐서 행렬을 재생

 matrix = zeros(10,25,360); 

을 나는 10 행, 25 열이 나는 같은 일을 재현 할 360의 "깊이"로 매트릭스를 얻을 C++에서는 Eigen을 사용합니다.

도움을 주셔서 감사합니다.

답변

3

은 Eigen으로 tensors을 정의 할 수 있습니다. 이러한 모듈을 사용하면 문제를 C++로 변환 할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 나는 그것을 사용하려고 노력하고있다. Tensor를 다루는 지원되지 않는 부분을 포함 할 때 Eigen의 마지막 버전을 다운로드하면 다음 오류가 발생합니다. '이 파일은 \ ISO C++ 2011 표준에 대한 컴파일러 및 라이브러리 지원이 필요합니다. 이 지원은 현재 실험적이므로 -std = C++ 11 또는 -std = gnu ++ 11 컴파일러 옵션을 사용하여 \ 을 사용해야합니다. #endif ' –

+0

이러한 컴파일러 옵션을 CXXFLAGS로 추가 했습니까? 어떤 컴파일러를 사용하고 있습니까? – Bort

+0

답변 해 주셔서 감사합니다. GNU GCC 컴파일러를 사용하고 있지만 컴파일러에이 옵션을 추가하는 방법을 모르겠습니다. 내가 코드를 사용하여 : : 윈도우 7에서 IDE로 블록. 다시 한번 감사드립니다. –

1

현재 고유 텐서 모듈은 기능상 현저히 제한적입니다. 2 개의 텐서 계수를 더할 수 없습니다! 대신 the tensor code in this fork of Eigen을 사용했습니다. 그것은 계수 현명한 연산, 회선, 수축 및 최근 슬라이싱과 같은 모핑 프리미티브에 대한 지원을 추가합니다. 또한 GPU를 활용하여 나에게 큰 판매 포인트였던 것을 빠르게 처리 할 수 ​​있습니다.

이 있습니다. 따라서 곧 기본 Eigen 코드 기반으로 나아갈 것입니다.

+0

궁금한 사람 : "보류중인 요청 : '이미 완료되었습니다.'" – knedlsepp