You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Boost uBLAS填充C++中创建的矩阵与向量?

Boost uBLAS 填充指定值的矩阵与向量

你可以通过以下几种方式给Boost uBLAS的矩阵和向量填充指定数值:

方法一:逐个元素赋值

直接通过矩阵的(行索引, 列索引)、向量的(索引)运算符逐个赋值,索引从0开始:

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

using namespace boost::numeric::ublas;

int main()
{
    matrix<double> m1(5, 5);
    vector<double> v1(5);

    // 填充矩阵m1
    m1(0, 0) = 2; m1(0, 1) = 1; m1(0, 2) = 4; m1(0, 3) = 6; m1(0, 4) = 3;
    m1(1, 0) = 8; m1(1, 1) = 2; m1(1, 2) = 0; m1(1, 3) = 1; m1(1, 4) = 4;
    m1(2, 0) = 7; m1(2, 1) = 3; m1(2, 2) = 2; m1(2, 3) = 4; m1(2, 4) = 7;
    m1(3, 0) = 1; m1(3, 1) = 2; m1(3, 2) = 0; m1(3, 3) = 9; m1(3, 4) = 3;
    m1(4, 0) = 2; m1(4, 1) = 6; m1(4, 2) = 4; m1(4, 3) = 3; m1(4, 4) = 1;

    // 填充向量v1
    v1(0) = 2;
    v1(1) = 3;
    v1(2) = 1;
    v1(3) = 7;
    v1(4) = 6;

    std::cout << m1 << std::endl;
    std::cout << v1 << std::endl;
    return 0;
}

方法二:批量复制赋值(更简洁)

如果你的编译器支持C++11及以上标准,可以用数组结合std::copy批量赋值,避免重复代码:

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

using namespace boost::numeric::ublas;

int main()
{
    matrix<double> m1(5, 5);
    vector<double> v1(5);

    // 按行顺序定义矩阵元素数组
    double mat_data[] = {2,1,4,6,3,
                         8,2,0,1,4,
                         7,3,2,4,7,
                         1,2,0,9,3,
                         2,6,4,3,1};
    // 批量复制到矩阵(Boost uBLAS矩阵默认行优先存储)
    std::copy(std::begin(mat_data), std::end(mat_data), m1.data().begin());

    // 向量批量赋值
    double vec_data[] = {2,3,1,7,6};
    std::copy(std::begin(vec_data), std::end(vec_data), v1.data().begin());

    std::cout << m1 << std::endl;
    std::cout << v1 << std::endl;
    return 0;
}

注意事项

  • Boost uBLAS的矩阵默认采用行优先存储,所以按行排列的元素数组可以直接复制到矩阵中。
  • 所有索引从0开始,和C++数组索引规则一致,注意不要出现越界访问。

内容的提问来源于stack exchange,提问作者nino dragičević

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 07:40:21