2021년 5월 25일 화요일

Eigen 라이브러리 - 매트릭스 합치기

방법

1. rows와 cols를 이용하여 matrixXd와 같은 자료형을 가진 변수를 생성 
2. 그냥 대입.

코드예시

#include "Eigen/Dense"
#include <iostream>
 
using namespace Eigen;
using namespace std;
 
int32_t main()
{
        // Matrix 생성
        MatrixXd A(2, 3);
        MatrixXd B(3, 3);
 
        // A 대입
        A << 1, 2, 3,
               3, 4, 5;
        B = MatrixXd::Ones(3, 3);
 
        MatrixXd C(A.rows() + B.rows(), A.cols());
        C << A, B;
 
        cout << C << endl;
 
        return 0;
}

결과


실행하여 위와 같은 결과를 얻을 수 있습니다.

MatrixXd C(A.rows() + B.rows(), A.cols());  // Eigen 라이브러리 명령
C << A, B;

C = [A; B]; @ Matlab 명령

2021년 5월 24일 월요일

Eigen 라이브러리 - submatrix 선택방법

 block<m,n>(i,j) 또는 block(m,n,i,j)를 이용합니다.

        // Matrix 생성
        MatrixXd B(3, 3);
 
        // A 대입
        A << 1, 2,
               3, 4;
       
        B = MatrixXd::Zero(3, 3); // B 초기화
        B.block<2, 2>(0, 0) = A; // submatrix 대입
 
        cout << B << endl; // B 출력
        MatrixXd A(2, 2);


콘솔 출력

실행하여 위와 같은 결과를 얻을 수 있습니다.
주의사항은 matlab과 달리 row, column의 인덱스가 0부터 시작합니다.


B.block<2, 2>(0, 0) = A;  // Eigen 라이브러리 명령

B(1:2,1:2) = A; @ Matlab 명령

[Visual Studio] 구글테스트 Inherited Additional Dependencies 변경

구글테스트에 Configuration을 추가하는 경우 정상적인 빌드가 되지 않는 문제 발생 상황: Test 명칭으로 Configuration을 새로 추가하였음 원인: 다음그림과 같이 Inherited values에 debug용이 아닌 release...