$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-users] Matrix initialization in uBLAS
From: Julian Gonggrijp (j.gonggrijp_at_[hidden])
Date: 2011-03-29 20:05:59
Oscar Vargas wrote:
> It's the first time I use uBLAS, and I want to know the right way to initialize a matrix.
> 
> Example:
>         | 3      2|
> M =     | 1      5|
>         | 3      4|
> 
> How can I create such a matrix?
The documentation is very clear on how to create a matrix:
http://www.boost.org/doc/libs/1_46_1/libs/numeric/ublas/doc/matrix.htm#12Example
In your example, you could do at least two things:
// option 1: just assign to each cell
    // somewhere inside a function...
    matrix<double> M (2, 3);  // or matrix<int>, matrix<complex>...
    M(0, 0) = 3;
    M(0, 1) = 2;
    M(1, 0) = 1;
    M(1, 1) = 5;
    M(2, 0) = 3;
    M(2, 1) = 4;
// option 2: define a constant two-dimensional array as initializer
const int ROWS = 3;
const int COLS = 2;
const int MATRIX_INIT[][COLS] = {{3, 2}, {1, 5}, {3, 4}};
    // somewhere inside a function...
    matrix<double> M (ROWS, COLS);  // or int, complex, whatever
    for (int i = 0; i < ROWS; ++i)
        for (int j = 0; j < COLS; ++j)
            M(i, j) = MATRIX_INIT[i][j];
Which option is best depends on your needs. There might be more
options that I'm not aware of but this should get you started.
HTH,
Julian