gpt4 book ai didi

c++ - 给定两个动态 R x C 矩阵,我如何交错行以生成一个 2R x C 矩阵?

转载 作者:行者123 更新时间:2023-11-30 04:30:37 26 4
gpt4 key购买 nike

使用 eigen2 , 并给定一个矩阵 A

a_0_0, a_0_1, a_0_2, ...
a_1_0, a_1_0, a_1_2, ...
...

和一个矩阵B:

b_0_0, b_0_1, b_0_2, ...
b_1_0, b_1_1, b_1_2, ...
...

并且 A 和 B 具有相同的尺寸,我想交错行,产生:

a_0_0, a_0_1, a_0_2, ...
b_0_0, b_0_1, b_0_2, ...
a_1_0, a_1_0, a_1_2, ...
b_1_0, b_1_1, b_1_2, ...
...

显然,我可以编写一个函数来构造一个适当维度的输出矩阵,然后遍历每个输入矩阵并将元素分配给结果。不过,我不想重新发明轮子,所以如果 eigen2 已经有一种机制可以优雅地表达这种矩阵手术,我更愿意使用它。

我确实查看了 eigen2 文档,没有任何明显正确的东西跳出来。我找到的最接近的东西是 MatrixBase::select,但它确实是“a 中的元素或 b 中的元素”,我想要的是“a 中的元素,然后是下一行中 b 中的元素”。

效率不是最重要的问题,因为我不需要在快速路径中执行此操作,只需在初始化时执行即可。

如果有更好的方法来表示矩阵,我对格式表示歉意。

最佳答案

将每个 R x C 矩阵乘以 2R x R 矩阵,该矩阵由适当对角线上的零和 1 组成,然后相加。

矩阵 1

1 0 0 0 ...
0 0 0 0 ...
0 1 0 0 ...
0 0 0 0 ...

矩阵 2

0 0 0 0 ...
1 0 0 0 ...
0 0 0 0 ...
0 1 0 0 ...

关于c++ - 给定两个动态 R x C 矩阵,我如何交错行以生成一个 2R x C 矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8607830/

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