我想将以下Matlab代码转换为Python中的等效代码:
M。*((S * U)./ max(realmin,M (U’ U)))哪里:
S:n * nM:n * mU:n * m我通过以下代码完成了它:
x =(max(-sys.maxint,…
Matlab的 max(a, b) 是广播的元素最大操作。 Python的 max(a, b) 不是。 Python的 max 不理解数组,你不应该在数组上使用它。
max(a, b)
max
对于广播的元素最大值,您需要 numpy.maximum :
numpy.maximum
numpy.maximum(whatever, whatever)
还有,Matlab的 realmin 是个 最小正标准化双精度浮点数 ,而Python的 sys.maxint 是一个 大负数 (在Python 3上也不存在)。这可能不是你想要的。相当于Matlab的 realmin 将会
realmin
sys.maxint
sys.float_info.min
要么
numpy.finfo(float).tiny
( numpy.finfo(float).min 是另一回事。)
numpy.finfo(float).min