首页 > 解决方案 > Python中的Matlab大鼠函数

问题描述

ratMatlab 的函数有 Python 版本吗?我试过寻找,我发现似乎最接近的是模块中的 Pythonfractions.Fraction.from_float方法fractions。但是,它似乎没有实现相同的算法。

按照这个 Matlab 参考页手动实现一个函数似乎并不难,但我想知道是否有内置函数或标准库版本。

标签: pythonmatlab

解决方案


如果您想留在标准库中,您可能需要查看该fractions.Fraction.limit_denominator()方法:

>>> fractions.Fraction.from_float(0.8)
Fraction(3602879701896397, 4503599627370496)

>>> fractions.Fraction.from_float(0.8).limit_denominator()
Fraction(4, 5)

如果您从 Matlab 迁移,您可能需要 numpy、scipy 和 sympy 的一些外部帮助。Sympy 有一个很好的 .nsimplify 方法,它也为分数近似做了“正确的事情”:

>>> import sympy
>>> sympy.nsimplify(0.8)
4/5

推荐阅读