是否有用于查找矩阵长度的 Sage 函数?

Is there a Sage function for finding the length of a matrix?

我在笔记本中有一个矩阵(在 Sage 中)- 通过 Jupyter。

我如何在 Sage 中找到这个矩阵的大小? 我知道在 Python 中我可以用

找到列表的长度
len(list)

在 Sage 中是否有执行此操作但使用矩阵的函数? 有点喜欢

len(matrix)

我尝试的例子:

len([1, 2, 3])
3

len(matrix([[1, 2, 3], [4, 5, 6]]))
TypeError: object of type sage.matrix.matrix_integer_dense.Matrix_integer_dense' has no len()

同上:

aMatrix = matrix([[1, 2, 3], [4, 5, 6]])
aMatrix
len(aMatrix)

谢谢!感谢任何帮助。

使用方法

  • nrows为行数
  • ncols为列数
  • dimensions 两者同时

示例:

sage: a = matrix([[1, 2, 3], [4, 5, 6]])
sage: a
[1 2 3]
[4 5 6]

sage: a.nrows()
2
sage: a.ncols()
3
sage: a.dimensions()
(2, 3)

获取元素个数:

sage: a.nrows() * a.ncols()
6
sage: prod(a.dimensions())
6

其他变化:

sage: len(list(a))
2
sage: len(list(a.T))
3
sage: len(a.list())
6

解释:

  • list(a) 给出行列表(作为向量)
  • a.T是转置矩阵
  • a.list() 给出条目列表
  • a.dense_coefficient_list() 也给出
  • a.coefficients() 给出非零条目的列表

详情:

sage: list(a)
[(1, 2, 3), (4, 5, 6)]
sage: a.T
[1 4]
[2 5]
[3 6]
sage: a.list()
[1, 2, 3, 4, 5, 6]

更多可能性:

sage: sum(1 for row in a for entry in row)
6
sage: sum(1 for _ in a.list())
6