Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将matlab中的矩阵算子转换为python_Python_Matlab_Matrix_Operations - Fatal编程技术网

如何将matlab中的矩阵算子转换为python

如何将matlab中的矩阵算子转换为python,python,matlab,matrix,operations,Python,Matlab,Matrix,Operations,我想将以下Matlab代码转换为Python中的等效代码: M.*((S*U)./max(realmin, M*(U'*U))) 其中: S: n*n M: n*m U: n*m 我是通过以下代码完成的: x = (max(-sys.maxint, np.matmul(M, np.matmul(np.transpose(U), U)))) M = np.dot(M, ((np.matmul(S, U)) / x)) 但我得到了以下错误: x = (max(-sys.maxint, np.m

我想将以下Matlab代码转换为Python中的等效代码:

M.*((S*U)./max(realmin, M*(U'*U)))
其中:

S: n*n
M: n*m
U: n*m
我是通过以下代码完成的:

x = (max(-sys.maxint, np.matmul(M, np.matmul(np.transpose(U), U))))
M = np.dot(M, ((np.matmul(S, U)) / x))
但我得到了以下错误:

x = (max(-sys.maxint, np.matmul(M, np.matmul(np.transpose(U), U))))
ValueError: The truth value of an array with more than one element is 
ambiguous. Use a.any() or a.all()
请您帮助我如何将Matlab代码转换为Python。

Matlab的
max(a,b)
是一种广播的元素最大操作。Python的
max(a,b)
不是。Python的
max
不理解数组,您不应该在数组上使用它

对于广播的元素最大值,您需要:

另外,Matlab的
realmin
是一个,而Python的
sys.maxint
是一个(在Python3上也不存在)。那可能不是你想要的。与Matlab的realmin等价的是

sys.float_info.min


numpy.finfo(float).min
是另一回事。)

的可能重复的可能重复虽然错误相同,但我认为对我来说问题是因为matlab代码的错误转换而提出的,并且私有链接不能帮助我
M*(S@U)/np.max(numpy.finfo(float).tiny,M@U.T@U))
您能帮我正确转换整个代码吗?python中的./(右除法)等价物是什么?
sys.float_info.min
numpy.finfo(float).tiny