1. 程式人生 > >C++ 實現matlab資料歸一化函式mapminmax

C++ 實現matlab資料歸一化函式mapminmax

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裡的函式結果一致。