了解传递给函数的参数是向量还是矩阵

发布于 2024-12-25 10:22:35 字数 332 浏览 1 评论 0原文

我正在 Sage 中编写一个函数,它应该以不同的方式处理向量和矩阵。

我无法使用 isinstance 函数,因为向量或矩阵的类型取决于元素的类型:

sage: type(matrix([[1]]))
<type 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'>
sage: type(matrix([[i]]))
<type 'sage.matrix.matrix_symbolic_dense.Matrix_symbolic_dense'>

区分向量和矩阵的最佳方法是什么?

I'm writing a function in Sage that should work in different way for vectors and matrices.

I can not use isinstance function because type of vector or matrix depends on the type of the elements:

sage: type(matrix([[1]]))
<type 'sage.matrix.matrix_integer_dense.Matrix_integer_dense'>
sage: type(matrix([[i]]))
<type 'sage.matrix.matrix_symbolic_dense.Matrix_symbolic_dense'>

What is the best way to distinguish vectors and matrices?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄居人 2025-01-01 10:22:35

该解决方案是在尝试在 Sage 源代码中查找定义 matrix.dim 时意外找到的。

from sage.matrix.matrix import is_Matrix
from sage.structure.element import is_Vector

def myfunction(x):
    if is_Vector(x):
        # do something
    elif is_Matrix(x):
        # do something else
    else:
        raise TypeError("The argument must be vector or matrix")

The solution was accidentally found while trying to find definition matrix.dim in the Sage source.

from sage.matrix.matrix import is_Matrix
from sage.structure.element import is_Vector

def myfunction(x):
    if is_Vector(x):
        # do something
    elif is_Matrix(x):
        # do something else
    else:
        raise TypeError("The argument must be vector or matrix")
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文