我決定今天晚上有點野外派對和直方圖箱來操作我分析的一些財務數據。但是,由於我想通過研究或玩耍,並且證明令人煩惱,所以我想要應用我的「箱內」操作的方式並不是顯而易見的,但似乎黨已經被拖垮了。花式分箱操作 - 如何矢量化相對的箱內操作?
慾望:我想在列中使用'binning'索引來執行某種行內'bin'操作,其中所述操作將對其自己的bin的第一個元素進行相對引用。請考慮以下的單倉示例,其中操作是採取差
A =
1 10.4
1 10.6
1 10.3
1 10.2
相對操作將需要第2列中的所有元素和第2列,使得所述第一元件之間的差
bin_differencing_function(A)
=
1 10.4 0.0
1 10.6 0.2
1 10.3 -0.1
1 10.2 -0.2
現在,更方便的將是能夠養活bin_differencing_function (A)的雙列矩陣與倉的任意數量,使得如果
A =
1 10.4
1 10.6
1 10.3
1 10.2
2 10.2
2 10.6
2 10.8
2 10.8
3 11.0
3 10.8
3 10.8
3 10.8
better_bin_differencing_function(A)
=
1 10.4 0.0
1 10.6 0.2
1 10.3 -0.1
1 10.2 -0.2
2 10.2 0.0
2 10.6 0.4
2 10.8 0.6
2 10.8 0.6
3 11.0 0.0
3 10.8 -0.2
3 10.8 -0.2
3 10.8 -0.2
最方便的。將能夠養活better_bin_differencing_function(A )具有任意數量的分箱的雙列矩陣,其中分箱長度可以不是恆定的,使得如果
A =
1 10.4
1 10.6
1 10.3
2 10.2
2 10.6
2 10.8
2 10.8
2 10.7
3 11.0
3 10.8
best_bin_differencing_function(A)
=
1 10.4 0.0
1 10.6 0.2
1 10.3 -0.1
2 10.2 0.0
2 10.6 0.4
2 10.8 0.6
2 10.8 0.6
2 10.7 0.5
3 11.0 0.0
3 10.8 -0.2
最大的願望是創建一段代碼,利用量化的(如果可能的話)對許多垃圾箱誰的長度將介於1和200我改變操作m認爲準確的玩法可能會這樣做:
accumarray(A(:,1),A(:,2),[],@(x) fun(x))
其中fun(x)是一個帶for循環的函數。
我在Windows 7上運行MATLAB 7.10.0.499(R2010a)。對不起,這個例子使這個查詢很長。
我的直覺是,一個for循環結合bsxfun將是一個快速解決方案... – bla 2014-09-01 03:40:34