octave - 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 循环来生成这些,但我想使用一个预先存在的例程,如果它存在的话。
解决方案
据我所知,没有单一功能,但您可以轻松地使用flipud
或fliplr
向上/向下或向左/向右翻转对角矩阵以获得您想要的:
>> flipud(eye(4))
ans =
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
推荐阅读
- python - 使用数学运算在列表中迭代
- c# - 生成对象不同步
- c# - System.IdentityModel.Tokens.Jwt 版本差异
- vb.net - 如何调试/断点 Sub Main()?
- python - 提取两个日期时间值熊猫数据框之间的微小差异
- keycloak - Keycloak电子邮件验证:验证后如何重定向用户
- swift - 在蒸汽 4 响应中手动修改模型属性值
- javascript - 如何从 JavaScript 中的 3 个对象数组中排序并获取每个名称的最大分数,并将其以及缺少的键和值分配给另一个数组?
- c# - 由于选项卡名称,Webform 仅从一组 Excel 文件中读取标题
- matter.js - 如何在 Matter JS 中定义一个重的对象