gpt4 book ai didi

c++ - Eigen :零矩阵,较小的矩阵为 "diagonals"

转载 作者:行者123 更新时间:2023-11-28 05:15:42 27 4
gpt4 key购买 nike

是否可以创建一个 9x9 矩阵,其中“对角线”是另一个矩阵,其余为零,如下所示:

5 5 5 0 0 0 0 0 0
5 5 5 0 0 0 0 0 0
5 5 5 0 0 0 0 0 0
0 0 0 5 5 5 0 0 0
0 0 0 5 5 5 0 0 0
0 0 0 5 5 5 0 0 0
0 0 0 0 0 0 5 5 5
0 0 0 0 0 0 5 5 5
0 0 0 0 0 0 5 5 5

从一个较小的 3x3 矩阵重复:

5 5 5
5 5 5
5 5 5

我知道 Replicate 函数,但它会在矩阵中的任何地方重复它并且不会保留零。是否有一种内置的方法可以实现我所追求的目标?

最佳答案

一种方法是使用 .block<3,3>(0,0) block 是 3x3 block 开始于 0,0 . (注意:您的 IDE 可能会将此行标记为错误,但它会编译并运行)

for (int x=0, x<3, x++){
zero_matrix.block<3,3>(x*3,x*3) = five_matrix;
}

关于c++ - Eigen :零矩阵,较小的矩阵为 "diagonals",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42722307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com