我决定今晚有点疯狂,并与直方图箱一起对我正在分析的一些财务数据进行操作。
不过,派对似乎已经被大便了,因为我想应用我的“intra-bin”操作的方式并不明显,既不是通过研究也不是通过玩耍,而且证明很麻烦。
愿望:我想在列中使用“binning”索引来执行某种逐行的“intra-bin”操作,其中所述操作将对它自己的 bin 的第一个元素进行相对引用。请考虑下面的单箱示例,其中操作是取差值
一个=
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_difference_function(A) 提供一个具有任意数量 bin 的双列矩阵,这样如果
一个=
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_difference_function(A) 提供具有任意数量 bin 的双列矩阵,其中 bin 长度可能不是恒定的,如果
一个=
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 之间变化的许多 bin 进行操作。我认为在 accumarray 上玩可能会起到这样的作用
accumarray(A(:,1),A(:,2),[],@(x) fun(x))
其中 fun(x) 是一个带有 for 循环的函数。
我在 Windows 7 上运行 MATLAB 7.10.0.499 (R2010a)。抱歉,这些示例查询了这么久。