2014-03-27 27 views

回答

1

如果需要端口MATLAB代碼到Python,可考慮使用包numpyscipymatplotlib它們之間覆蓋功能的MATLAB很大一部分。碰巧,numpy包含一個函數numpy.mean,它計算numpy數組或列表的平均值。例如:

import numpy 
print(numpy.mean([1, 2, 3, 4, 5])) 
+0

如果你在Windows平臺上,你可以訴諸Anaconda:https://store.continuum.io/cshop/anaconda/ – asiviero

0

我想到了幾個版本有以下幾種:

mean1 = lambda x: 1.0*sum(x)/len(x) 

def mean2(x): 
    return 1.0*sum(x)/len(x) 

def mean3(*args): 
    return 1.0*sum(args)/len(args) 

這裏,mean1mean2做完全一樣的,但第一個函數定義爲lambda表達式。它們都以列表作爲參數,使用sum函數來計算所有元素和len函數的總和,以知道列表中有多少個元素。爲了安全起見,我將乘以1.0,以便除法總是產生一個浮點數。在Python 3中這不是必需的,/操作將始終生成一個浮點數,而不是一個整數。

所以這兩個版本都可以使用如下:

mean1([1,2,3,4]) 
mean2([1,2,3,4]) 

,並會產生結果2.5

在第三個版本,你並不需要指定一個列表,你可以使用一些函數的自變量:

mean3(1,2,3,4) 

這將再次返回2.5