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

如何在Rust的nalgebra库中实现矩阵横向拼接?

使用nalgebra实现矩阵横向拼接方案

要实现两个行数相同的矩阵横向拼接,nalgebra提供了专门的hconcat函数(对应纵向拼接的是vconcat),完全匹配你的需求,具体实现如下:

静态矩阵(固定尺寸)示例

use nalgebra::{Matrix2, hconcat};

fn main() {
    // 构造目标输入矩阵
    let mat1 = Matrix2::new(1.0, 0.0, 0.0, 1.0); // 等价于Matrix2::identity()
    let mat2 = Matrix2::new(2.0, 0.0, 0.0, 2.0); // 等价于Matrix2::from_diagonal(&[2.0, 2.0])

    // 横向拼接得到结果矩阵
    let combined = hconcat(&mat1, &mat2);

    // 验证输出
    println!("{}", combined);
    // 输出:
    //   ┌       ┐
    //   │ 1 0 2 0 │
    //   │ 0 1 0 2 │
    //   └       ┘
}

动态矩阵(DMatrix)示例

如果使用动态尺寸的DMatrix,同样可以用hconcat实现:

use nalgebra::{DMatrix, hconcat};

fn main() {
    let dmat1 = DMatrix::from_row_slice(2, 2, &[1.0, 0.0, 0.0, 1.0]);
    let dmat2 = DMatrix::from_row_slice(2, 2, &[2.0, 0.0, 0.0, 2.0]);

    let combined = hconcat(&dmat1, &dmat2);
    println!("{}", combined);
}

注意事项

  • hconcat要求所有输入矩阵的行数必须相同,否则会触发编译错误,确保你的输入符合这个前提。
  • 你之前尝试的insert_row方法确实仅用于插入填充同一常量的行,并非为矩阵拼接设计,所以不适合当前场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:45:37