三个算法
其他可参考我写的go语言的算法计算,包含了http服务
go语言计算心率算法文章来源:https://www.toymoban.com/news/detail-575080.html
//hrv 5 min RR 间期 平均值标准差 sdann
// 24h 正常的RR间期总体标准差 sdnn
// 24h 每5分钟时段 标准差的平均值 sdnn index
// 两个相邻RR间期 差值的均方根RMSSD
// 24h 相邻两个正常RR 间期差值 大于50ms 的个数百分比pnn50文章来源地址https://www.toymoban.com/news/detail-575080.html
#include <numeric>
#include <math.h>
#include <algorithm>
#include <vector>
#include <iostream>
double get_stddev_1(std::vector<double> &data)
{
double ret = 0.0;
size_t size = data.size();
if (size == 0)
return -1;
double sum = std::accumulate(std::begin(data), std::end(data), 0.0);
double mean = sum / (double)size; //均值
double sdnn_2 = 0.0;
std::for_each(std::begin(data), std::end(data), [&](const double d) {
sdnn_2 += (d - mean)*(d - mean);
});
double sdnn = sqrt(sdnn_2 / (size - 1)); //方
return sdnn;
}
double get_stddev(std::vector<double> &data)
{
double ret = 0.0;
size_t size = data.size();
if (size == 0)
return -1;
double sum = std::accumulate(std::begin(data), std::end(data), 0.0);
double mean = sum / (double)size; //均值
std::cout << "the mean is " << mean << std::endl;
double sdnn_2 = 0.0;
std::for_each(std::begin(data), std::end(data), [&](const double d) {
sdnn_2 += (d - mean)*(d - mean);
});
double sdnn = sqrt(sdnn_2 / (size)); //方
return sdnn;
}
double get_average(std::vector <double> &data)
{
size_t size = data.size();
if (size == 0)
return -1;
double sum = std::accumulate(std::begin(data), std::end(data), 0.0);
double mean = sum / (double)size; //均值
return mean;
}
到了这里,关于c++ 计算心率数据的几个算法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!