您的位置:首页 > 编程语言 > C语言/C++

C++ 将float数据归一化到[0,1]

2016-02-22 21:49 281 查看
<pre name="code" class="cpp">std::ofstream fileout(‘features_normalize.txt’,std::ios::app);
float ymax = 1; //归一化数据范围
float ymin = 0;
float feature_blob_data[5] = [-1.254,0.254,2.147,-3.456,4.257];//初始化浮点数
std::vector<float> features; //临时特征向量
for (int d = 0; d < 5; ++d)
features.push_back(feature_blob_data[d]);
//特征归一化
float dMaxValue = *max_element(features.begin(),features.end());  //求最大值
std::cout<<"maxdata"<<dMaxValue<<'\n';
float dMinValue = *min_element(features.begin(),features.end());  //求最小值
std::cout<<"mindata"<<dMinValue<<'\n';
for (int f = 0; f < features.size(); ++f) {
features[f] = (ymax-ymin)*(features[f]-dMinValue)/(dMaxValue-dMinValue+1e-8)+ymin;
//极小值限制
fileout<<f+1<<":"<< features[f]<<" ";
}
fileout<<"\n";
features.clear();//删除容器



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++