我如何镜像矩阵的其中一个维度?

qua*_*ant 3 c++ eigen

我正在使用Eigen,但是由于eigen使用基本的数学运算符,所以这基本上只是一个数学问题。这是我所追求的伪代码:

    [1 2 3]
A = [4 5 6]
    [7 8 9]

            [7 8 9]
A.flipv() = [4 5 6]
            [1 2 3]
Run Code Online (Sandbox Code Playgroud)

我如何才能在Eigen中实现这样的目标?(我使用的是3.2版)

编辑:我想我要在这里做的是交换与底部行的顶部行(的某种组合.topRows().bottomRows().swap()?)

gga*_*ael 6

如果您要进行常规翻转,即不仅要进行3x3矩阵翻转,那么该reverse()功能正是您所需要的。特别是A.colwise().reverse()将每列反转,从而进行垂直翻转。对于水平翻转:A.rowwise().reverse()


Joh*_*erg 5

您只需要与另一个 3x3 矩阵相乘,在正确的位置带有 0 和 1。我想你可以用那里的笔和纸解决它。我给你一个提示:解决方案中只有 3 个。

.. 好的:

[0 0 1]
[0 1 0]
[1 0 0]
Run Code Online (Sandbox Code Playgroud)