其他分享
首页 > 其他分享> > simulate 中的一些操作

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