accumarray

"subs是一個矩陣

accumarray是MATLAB的一個函式,用於把一個向量中的分量分別累計入一個矩陣的不同元素中。
最基本的用法是:A=accumarray(subs, val);其中val是源向量,它的分量按序與subs的行向量對應。subs是一個矩陣, 稱作“索引矩陣”(index matrix),它的行向量自上而下與val的分量一一對應,且行向量的值為結果矩陣中將要累計入的位置。
例如:
val = [1, 2, 3, 4];
subs=[ 1,2; 1,1; 2,1; 1,1];
A=accumarray(subs,val)
A =
6 1
3 0
這個例子中,subs的4個行向量表明了val的4個分量分別累計入結果矩陣的(1,2)、(1,1)、(2,1)、(1,1)元素。
val可以是一個標量。累計時把該標量值反覆計入。
subs也可以採用元組形態:{subs1, subs2, ...}, 其中的subs1, subs2等為列向量,合起來形成索引矩陣(index matrix).
accumarray的最完整的用法為:accumarray(subs,val,sz,fun,fillval,issparse),其中參數sz指明結果矩陣的維數;fun為累計計算時的運算函式,默認為sum(),To specify another function fun, use the @ symbol
(e.g., @max);fillval為結果矩陣的元素沒有累計的情況下的預設值,默認為0;issparse指出結果矩陣是否採用稀疏矩陣

相關詞條

相關搜尋

熱門詞條

聯絡我們