Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

Boost::ublasで行列計算する その2:加法・乗法

#include <iostream>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/io.hpp>

namespace ublas = boost::numeric::ublas;
using namespace std;

int main()
{
    // double型を要素とする行列
    ublas::matrix<double> v(3,3);
    ublas::matrix<double> u(3,3);

    // 各要素の参照と代入
    v(0,0) = 3.0;  v(0,1) = 0.0; v(0,2) = 4.0; 
    v(1,0) = 3.0;  v(1,1) = 0.0; v(1,2) = 4.0; 
    v(2,0) = 3.0;  v(2,1) = 0.0; v(2,2) = 4.0; 

    u(0,0) = 3.0;  u(0,1) = 0.0; u(0,2) = 4.0; 
    u(1,0) = 3.0;  u(1,1) = 0.0; u(1,2) = 4.0; 
    u(2,0) = 3.0;  u(2,1) = 0.0; u(2,2) = 4.0; 

    // ベクトルの演算
    ublas::matrix<double> v1 = v + u;             //加法
    ublas::matrix<double> v2 = v - u;             //減法
    ublas::matrix<double> v3 = v * 2.0;         //整数倍
    ublas::matrix<double> v4 = v / 3.0;         //整数割
    ublas::matrix<double> v5 = prod(v, u) ;  //乗法

    cout << "v1 : " << v1 << endl;
}