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

如何在Armadillo中拼接两个或多个向量?含具体示例

在Armadillo中拼接多个向量的实现方法

嗨,这个问题处理起来很直观!Armadillo提供了专门的工具来完成向量拼接,针对你给出的示例,我给你分享两种常用的实现方式:

方法一:使用join_cols()函数(官方推荐)

因为Armadillo里的vec默认是列向量,join_cols()就是专门用来拼接列向量的函数,代码可读性拉满:

#include <armadillo>
using namespace arma;

int main() {
    vec a(3, fill::randu);
    vec b(5, fill::randu);
    
    // 直接拼接a和b,得到长度为8的新向量c
    vec c = join_cols(a, b);
    
    // 打印结果验证
    c.print("拼接后的向量c:");
    return 0;
}

如果你的向量是行向量(rowvec类型),只需要换成join_rows()函数就可以啦。要是需要拼接3个及以上的向量,还可以用初始化列表的方式链式拼接:

vec d = join_cols({a, b, some_other_vec});

方法二:通过子向量赋值拼接

如果你想手动控制元素位置,也可以通过subvec()截取子区间来完成赋值,这种方式适合需要自定义拼接位置的场景:

#include <armadillo>
using namespace arma;

int main() {
    vec a(3, fill::randu);
    vec b(5, fill::randu);
    
    // 先创建一个长度为8的空向量
    vec c(8);
    // 将a的元素复制到c的前3个位置(索引0到2)
    c.subvec(0, 2) = a;
    // 将b的元素复制到c的后5个位置(索引3到7)
    c.subvec(3, 7) = b;
    
    c.print("拼接后的向量c:");
    return 0;
}

内容的提问来源于stack exchange,提问作者rozyang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:25:12