C++ 實現matlab資料歸一化函式mapminmax
阿新 • • 發佈:2018-11-04
matlab驗證了我的資料處理方法,今天換成了c++版,實現matlab的mapminmax()函式。程式碼如下:
void normalize(float *data)
{
int datamax = 1; //設定歸一化的範圍
int datamin = 0;
std::vector<float> features;
for (int d = 0; d < 3000; ++d)
features.push_back(data[d]);
//特徵歸一化
float Maxvalue = *max_element(features.begin(), features.end());//取容器中的最大值
float Minvalue = *min_element(features.begin(), features.end());//取容器中的最小值
for (int f = 0; f < features.size(); ++f)
{
features[f] = (datamax - datamin)*(features[f] - Minvalue) / (Maxvalue - Minvalue ) + datamin;
//features[f] = (features[f] - Minvalue) / (Maxvalue - Minvalue);
data[f] = features[f];
}
}
matlab中的歸一化公式為:y = (ymax-ymin)*(x-xmin)/(xmax-xmin) + ymin
此方法與matlab裡的函式結果一致。