首页 > 解决方案 > GNU octave 是否有生成对角矩阵和交换矩阵的例程?

问题描述

我需要生成一些反对角矩阵(左下角到右上角元素非零的矩阵。请参阅https://en.wikipedia.org/wiki/Anti-diagonal_matrix)和交换矩阵(左下角到左上角的矩阵角对角线为 1,其他一切都为零https://en.wikipedia.org/wiki/Exchange_matrix)。Octave 是否有任何内置例程来生成它们(如 eye(n) 或 diag(1,2,4))?

当然,我可以另外编写一个 for 循环来生成这些,但我想使用一个预先存在的例程,如果它存在的话。

标签: octave

解决方案


据我所知,没有单一功能,但您可以轻松地使用flipudfliplr向上/向下或向左/向右翻转对角矩阵以获得您想要的:

>> flipud(eye(4))

ans =

     0     0     0     1
     0     0     1     0
     0     1     0     0
     1     0     0     0

推荐阅读