我正在研究matlab转换代码。 什么相当于。*在matlab中使用python?
len = sum(sqrt(sum(v.*v)))/N;
其中v是numpy数组:
v = [array([-35289.38919481, -30575.56015338, -21456.41798462, ...,
19796.17331542, 11216.34277023, 6977.87432284])]
N = 18225
在这种情况下,我如何将代码转换为python?
答案 0 :(得分:3)
对于numpy数组,只使用*将像Matlab的.*
一样进行元素乘法运算
http://wiki.scipy.org/NumPy_for_Matlab_Users
你可以使用,
len = numpy.sum(numpy.sqrt(numpy.sum(v[0] * v[0], axis=0))) / N
注意:如果要在numpy中使用矩阵而不是数组,则必须使用multiply
方法。
答案 1 :(得分:1)
v_squared_sum = v.dot(v.transpose())
len_ = np.sum(np.sqrt(v_squared_sum)) / N
答案 2 :(得分:1)
import numpy as np
v = np.array([1,2,3])
N = 3
len_ = np.sqrt(np.dot(v, v)) / N
print(len_)
结果:
1.24721912892
不要将len
用作变量名,因为这会影响内置长度函数len()
。