我正在编写一个matlab转换代码。什么是matlab中.* 的等价物?
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?
vlf7wbxs1#
对于numpy数组,只需使用 * 就可以执行元素乘法,就像在Matlab的.*Link中一样你可以用
.*
len = numpy.sum(numpy.sqrt(numpy.sum(v[0] * v[0], axis=0))) / N
注意:如果你想在numpy中使用矩阵而不是数组,你必须使用multiply方法。
multiply
46qrfjad2#
v_squared_sum = v.dot(v.transpose()) len_ = np.sum(np.sqrt(v_squared_sum)) / N
vd8tlhqk3#
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()。
len
len()
3条答案
按热度按时间vlf7wbxs1#
对于numpy数组,只需使用 * 就可以执行元素乘法,就像在Matlab的
.*
Link中一样你可以用
注意:如果你想在numpy中使用矩阵而不是数组,你必须使用
multiply
方法。46qrfjad2#
vd8tlhqk3#
结果:
不要使用
len
作为变量名,因为这隐藏了内置的长度函数len()
。