Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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;
}