python中点星星的matlab等价物

1tuwyuhd  于 2023-01-04  发布在  Python
关注(0)|答案(3)|浏览(144)

我正在编写一个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?

vlf7wbxs

vlf7wbxs1#

对于numpy数组,只需使用 * 就可以执行元素乘法,就像在Matlab的.*Link中一样
你可以用

len = numpy.sum(numpy.sqrt(numpy.sum(v[0] * v[0], axis=0))) / N

注意:如果你想在numpy中使用矩阵而不是数组,你必须使用multiply方法。

46qrfjad

46qrfjad2#

v_squared_sum = v.dot(v.transpose()) 
len_ = np.sum(np.sqrt(v_squared_sum)) / N
vd8tlhqk

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

相关问题