1. 程式人生 > >基於 eigen matlab mapminmax 函式的實現

基於 eigen matlab mapminmax 函式的實現

//歸一化函式 x 輸入向量  ymin 輸出最小值  ymax 輸出最大值
VectorXd mapminmax(VectorXd x, Type ymin =-1, Type ymax=1)
{
	VectorXd y(x.size()) ;
	if ((x.maxCoeff() <= ymax) && (x.minCoeff() >= ymin))
	{
		y = x;
	}
	else {
		y=(ymin + (ymax - ymin)*(x.array() - x.minCoeff()) / (x.maxCoeff() - x.minCoeff()));
	}
	return y;
	 
}

有點應該注意,當輸入資料的大小值在ymin ymax範圍內,不用再歸一化,直接輸出。