simulate 中的一些操作
作者:互联网
1. neutralize:
position based 的alpha
int neutralize(int di, int ti) { double sum = 0; double abssum = 0; int count = 0; for (int ii = 0; ii < nsyms; ++ii) { if (std::isfinite(pos(di, ii))) { sum += pos(di, ii); count++; } else if (std::isinf(pos(di, ii))) { pos(di, ii) = NaN; } } if (count != 0) { double mean = sum / count; for (int ii = 0; ii < nsyms; ++ii) { if (std::isfinite(pos(di, ii))) { abssum += fabs(pos(di, ii) - mean); pos(di, ii) = pos(di, ii) - mean; } } } if (abssum != 0) { for (int ii = 0; ii < nsyms; ++ii) { if (std::isfinite(pos(di, ii))) { pos(di, ii) *= 1.0 / abssum; } } } return 0; }
2. operators definition:
ts_sum(ts_matrix x, int t) 从当前天往前t天的值之和
ts_max(ts_matrix x, int t) 从当前天往前t天的值中的最大值
ts_min(ts_matrix x, int t) 从当前天往前t天的值中的最小值
ts_argmax(ts_matrix x, int) 从当前天往前t天的值中的最大值的索引
ts_argmin(ts_matrix x, int t) 从当前天往前t天的值中的最小值的索引
ts_count(ts_matrix x, int t) 从当前天往前t天中有效值的个数(除去nan和inf值)
ts_mean(ts_matrix x, int t) 从当前天往前t天所有值的平均值(如果输入的位置上是nan,则输出不一定为nan)
ts_norm(ts_matrix x, int t) 当前值除以前t天的平均值
ts_std_norm(ts_matrix x, int t) 当前值除以前t天的方差
标签:matrix,di,int,ts,pos,ii,simulate,一些,操作 来源: https://www.cnblogs.com/sssblog/p/11536525.html