2012-08-27 32 views
3

比如,我想通過生成XS矢量伊蘇:在matlab中是否還有其他內置累積函數,比如cumsum&cumprod?

ys(1) = xs(1) 
ys(2) = max(xs(1:2)) 
ys(k) = max(xs(1:k)) 
ys(n) = max(xs) 

一般來說,給定一個向量XS和一個函數f,是否有任何內置的功能給YS爲:

ys(1) = f(xs(1)) 
ys(k) = f(xs(1:k)) 

編輯:我剛剛發現,我可以使用arrayfun像:

ys = arrayfun(@(k) f(xs(1:k)),1:size(xs,2)) 

EDIT2:我還是想知道是否有像「cumarray」一些內置的功能可作爲:

ys = cumarray(xs,f) 
+2

將下面的答案添加爲「好的答案」,並在2天后標記爲已解決 –

+1

函數名稱爲'accumarray'(我無法編輯,因爲它只有2個字母變化) – carandraug

+0

@carandraug I已知函數,但我不知道如何使用這個函數作爲ys = cumarray(xs,f)並獲得我想要的結果? – Eastsun

回答

0

在Matlab中,我相信唯一的另一個是cumtrapz()

在八度還有cummax()cummin()。還有accumdim(),其行爲與accumarray()類似,但沿着指定的維度。

相關問題