standardize.cpp

来自「matlab编写的聚类算法代码」· C++ 代码 · 共 52 行

CPP
52
字号
#include "data.h"

double **Standardize(double **data,int row,int col)
{
	int i,j;
	double* a=new double[col];  //矩阵每列的最大值
	double* b=new double[col];  //矩阵每列的最小值
	double* c=new double[row];  //矩阵列元素
	
	for(i=0;i<col;i++)
	{
		//取出数据矩阵的各列元素
		for(j=0;j<row;j++)
		{
			c[j]=Data[j][i];
		}

	    a[i]=c[0],b[i]=c[0];
		
		for(j=0;j<row;j++)
		{
			//取出该列的最大值
			if(c[j]>a[i])
			{
				a[i]=c[j];
			}
			
			//取出该列的最小值
			if(c[j]<b[i])
			{
				b[i]=c[j];
			}	
		}
		
	}

	//数据标准化
	for(i=0;i<row;i++)
	{
		for(j=0;j<col;j++)
		{
			data[i][j]=(data[i][j]-b[j])/(a[j]-b[j]);
		}
	}

	cout<<"完成数据极差标准化处理!\n";
	delete[]a;
	delete[]b;
	delete[]c;

	return data;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?