matlab相当于python中的dot star

时间:2014-01-17 05:29:30

标签: python matlab

我正在研究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?

3 个答案:

答案 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()