本文整理汇总了C++中KstVectorPtr::sampleCount方法的典型用法代码示例。如果您正苦于以下问题:C++ KstVectorPtr::sampleCount方法的具体用法?C++ KstVectorPtr::sampleCount怎么用?C++ KstVectorPtr::sampleCount使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KstVectorPtr
的用法示例。
在下文中一共展示了KstVectorPtr::sampleCount方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AutoBin
void KstHistogram::AutoBin(KstVectorPtr V, int *n, double *max, double *min) {
double m;
*max = V->max();
*min = V->min();
*n = V->sampleCount();
if (*max < *min) {
m = *max;
*max = *min;
*min = m;
}
if (*max == *min) {
*max += 1;
*min -= 1;
}
// we can do a better job auto-ranging using the tick rules from plot...
// this has not been done yet, you will notice...
*n /= 50;
if (*n < 6) *n = 6;
if (*n > 60) *n = 60;
m = (*max - *min)/(100.0*double(*n));
*max += m;
*min -= m;
}
示例2: update
KstObject::UpdateType KstPSDCurve::update(int update_counter) {
int i_subset, i_samp;
int n_subsets;
int v_len;
int copyLen;
double mean;
double y;
bool force = false;
KstVectorPtr iv = _inputVectors[INVECTOR];
double *psd;
if (KstObject::checkUpdateCounter(update_counter))
return NO_CHANGE;
if (update_counter <= 0) {
force = true;
} else {
iv->update(update_counter);
}
v_len = iv->sampleCount();
n_subsets = v_len/PSDLen+1;
last_n_new += iv->numNew();
if ((last_n_new < PSDLen/16) && (n_subsets - last_n_subsets < 1) && !force) {
return NO_CHANGE;
}
psd = (*_sVector)->value();
for (i_samp = 0; i_samp < PSDLen; i_samp++) {
psd[i_samp] = 0;
}
for (i_subset = 0; i_subset < n_subsets; i_subset++) {
/* copy each chunk into a[] and find mean */
if (i_subset*PSDLen + ALen <= v_len) {
copyLen = ALen;
} else {
copyLen = v_len - i_subset*PSDLen;
}
mean = 0;
for (i_samp = 0; i_samp < copyLen; i_samp++) {
mean += (
a[i_samp] =
iv->interpolate(i_samp + i_subset*PSDLen, v_len)
);
}
if (copyLen>1) mean/=(double)copyLen;
/* Remove Mean and apodize */
if (removeMean() && appodize()) {
for (i_samp=0; i_samp<copyLen; i_samp++) {
a[i_samp]= (a[i_samp]-mean)*w[i_samp];
}
} else if (removeMean()) {
for (i_samp=0; i_samp<copyLen; i_samp++) {
a[i_samp] -= mean;
}
} else if (appodize()) {
for (i_samp=0; i_samp<copyLen; i_samp++) {
a[i_samp] *= w[i_samp];
}
}
for (;i_samp < ALen; i_samp++) a[i_samp] = 0.0;
/* fft a */
rdft(ALen, 1, a);
/* sum each bin into psd[] */
psd[0]+=a[0];
psd[PSDLen-1] += a[1];
for (i_samp=1; i_samp<PSDLen-1; i_samp++) {
psd[i_samp]+= cabs(a[i_samp*2], a[i_samp*2+1]);
}
}
last_f0 = 0;
last_n_subsets = n_subsets;
last_n_new = 0;
norm_factor = 1.0/(sqrt(double(Freq)*double(PSDLen))*double(n_subsets));
psd[0]*=norm_factor;
MaxY = MinY = mean = psd[0];
if (psd[0]>0)
MinPosY = psd[0];
else (MinPosY = 1.0e300);
/* normalize psd */
for (i_samp=1; i_samp<PSDLen; i_samp++) {
y = (psd[i_samp]*=norm_factor);
if (y>MaxY)
MaxY=y;
if (y<MinY)
MinY=y;
if ((y>0) && (y<MinPosY))
//.........这里部分代码省略.........