亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mymatrix.cpp

?? PRINCIPAL COMPONENT ANALYSIS,using C++ language
?? CPP
字號:
#include "MyMatrix.h"
#include <cassert>

MyMatrix::MyMatrix(double matrix[][MAXSIZE]/* =NULL */,
				   int row/* =MAXSIZE */,int col/* =MAXSIZE */){
	this->col=col;
	this->row=row;
	if(matrix!=NULL){
		for(int i=0;i<row;i++)
			for(int j=0;j<col;j++)
				this->matrix[i][j]=matrix[i][j];
	}
	else{
		for(int i=0;i<row;i++){
			for(int j=0;j<col;j++){
				if(i!=j)	this->matrix[i][j]=0;
				else		this->matrix[i][j]=1;
			}
		}
	}
}

MyMatrix::MyMatrix(MyMatrix &A){
	col=A.col;
	row=A.row;
	for(int i=0;i<row;i++)
		for(int j=0;j<col;j++)
			matrix[i][j]=A.matrix[i][j];
}

void MyMatrix::operator =(MyMatrix B){
	col=B.col;
	row=B.row;
	for(int i=0;i<row;i++)
		for(int j=0;j<col;j++)
			matrix[i][j]=B.matrix[i][j];
}

void MyMatrix::Display(){
	cout<<setiosflags(ios::fixed|ios::showpoint);
	for(int i=0;i<row;i++){
		for(int j=0;j<col;j++)
			cout<<setw(10)<<setprecision(5)<<matrix[i][j];
		cout<<endl;
	}
	cout<<endl;
}

double MyMatrix::GetMaxAbsNondialogElement(int &r,int &c){
	int i,j;
	double max=matrix[0][1];
	r=0;
	c=1;
	for(i=0;i<row;i++){
		for(j=0;j<i;j++){
			if(i==j)	continue;
			if(fabs(matrix[i][j])>fabs(max)){
				max=matrix[i][j];
				r=i;
				c=j;
			}
		}
	}

	return max;
}

double MyMatrix::GetMaxAbsElement(){
	double max=matrix[0][0];
	for(int i=0;i<row;i++)
		for(int j=0;j<col;j++)
			if(fabs(matrix[i][j])>fabs(max))
				max=matrix[i][j];
	return max;
}

MyMatrix operator*(MyMatrix A,MyMatrix B){
	if(A.col!=B.row)
	{
		cerr<<"Error : invalid demension , matrix multiplication failed!"<<endl;
		return MyMatrix();
	}
	int i,j,k;
	double sum;
	MyMatrix product(NULL,A.row,B.col);

	for(i=0;i<A.row;i++){
		for(j=0;j<B.col;j++){
			sum=0;
			for(k=0;k<A.col;k++)
				sum+=A.matrix[i][k]*B.matrix[k][j];
			product.matrix[i][j]=sum;
		}
	}
	return product;
}

MyMatrix operator*(MyMatrix A,double coefficient){
	for(int i=0;i<A.row;i++)
		for(int j=0;j<A.col;j++)
			A.matrix[i][j]*=coefficient;
	return A;
}

MyMatrix MyMatrix::JacobiMethod(MyMatrix& eigenvalue){
	MyMatrix temp=(*this);
	eigenvalue=MyMatrix(NULL,this->row,this->col);

	double cosTheta,sinTheta,tan2Theta,sin2Theta,cos2Theta,max;
	int rpos,cpos;

	for(int i=0;i<TIMES;i++){
		MyMatrix P(NULL,row,col);
		max=temp.GetMaxAbsNondialogElement(rpos,cpos);
		if(fabs(temp.matrix[rpos][rpos]-temp.matrix[cpos][cpos])<10e-30){
			sinTheta=cosTheta=1.0/sqrt(2.0);
		}
		else{
			tan2Theta=2*temp.matrix[rpos][cpos]/(temp.matrix[rpos][rpos]-temp.matrix[cpos][cpos]);
			cos2Theta=1.0/sqrt(1+tan2Theta*tan2Theta);
			sin2Theta=tan2Theta*cos2Theta;
			cosTheta=sqrt((1+cos2Theta)/2);
			sinTheta=sin2Theta/(2*cosTheta);
		}
		P.matrix[rpos][rpos]=P.matrix[cpos][cpos]=cosTheta;
		P.matrix[rpos][cpos]=-sinTheta;
		P.matrix[cpos][rpos]=sinTheta;
		temp=P.TransposeMatrix()*temp*P;
		eigenvalue=eigenvalue*P;
	}
	return temp;
}

MyMatrix MyMatrix::TransposeMatrix(){
	MyMatrix temp(NULL,col,row);
	for(int i=0;i<row;i++)
		for(int j=0;j<col;j++)
			temp.matrix[j][i]=matrix[i][j];

	return temp;
}

double MyMatrix::GetElement(int row, int col){
	if(row>=this->row||col>=this->col){
		cerr<<"Error : illegal index , out of range"<<endl;
		return 0.0;
	}

	return matrix[row][col];
}

void MyMatrix::SwapColumn(int a, int b){
	if(a>=col||b>=col){
		cerr<<"Error : illegal index , out of range"<<endl;
		return;
	}

	for(int i=0;i<row;i++){
		double t=matrix[i][a];
		matrix[i][a]=matrix[i][b];
		matrix[i][b]=t;
	}
}

bool MyMatrix::SetElement(int row, int col, double value){
	if(row>=this->row||col>=this->col){
		cerr<<"Error : illegal index , out of range"<<endl;
		return false;
	}

	matrix[row][col]=value;
	return true;
}

int MyMatrix::GetRow(){
	return row;
}

int MyMatrix::GetCol(){
	return col;
}

double MyMatrix::GetMeanOfCol(int col){
	assert(col>=0&&col<this->col);

	double res=0;
	for(int i=0;i<row;i++){
		res+=matrix[i][col];
	}
	return res/row;
}

double MyMatrix::GetMeanOfRow(int row){
	assert(row>=0&&row<this->row);

	double res=0;
	for(int i=0;i<col;i++){
		res+=matrix[row][i];
	}

	return res/col;
}

MyMatrix MyMatrix::StandarlizeVectors(){
	MyMatrix res(NULL,row,col);
	double mean,Lii,t;
	for(int i=0;i<row;i++){
		Lii=0;
		mean=GetMeanOfRow(i);
		for(int k=0;k<col;k++)
			Lii+=(matrix[i][k]-mean)*(matrix[i][k]-mean);
		t=sqrt(Lii/(res.col-1));
		for(int j=0;j<col;j++){
			res.matrix[i][j]=(matrix[i][j]-mean)/t;
		}
	}

	return res;
}

double MyMatrix::GetRowStandardDeviration(int row){
	assert(row>=0&&row<this->row);
	double mean=GetMeanOfRow(row);

	double res=0;
	for(int i=0;i<col;i++){
		res+=(matrix[row][i]-mean)*(matrix[row][i]-mean);
	}
	res=sqrt(res/(col-1));

	return res;
}

double MyMatrix::GetRowCovirance(int r1, int r2){
	assert(r1>=0&&r1<this->row);
	assert(r2>=0&&r2<this->row);

	double res=0;
	double mean1=GetMeanOfRow(r1),mean2=GetMeanOfRow(r2);
	for(int i=0;i<col;i++){
		res+=(matrix[r1][i]-mean1)*(matrix[r2][i]-mean2);
	}
	res/=(col-1);

	return res;
}

MyMatrix MyMatrix::GetCorelationMatrix(){
	MyMatrix res(NULL,row,row);
	double *standardVariance=new double[row];
	int i,j;
	for(i=0;i<row;i++)
		standardVariance[i]=GetRowStandardDeviration(i);

	for(i=0;i<row;i++){
		for(j=0;j<i;j++){
			res.matrix[j][i]=res.matrix[i][j]=
				GetRowCovirance(i,j)/(standardVariance[i]*standardVariance[j]);
		}
	}

	delete []standardVariance;
	return res;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.99精品| 日韩高清欧美激情| 成人少妇影院yyyy| 国产精品免费视频一区| 成人av动漫在线| 亚洲精品日日夜夜| 欧美久久一二三四区| 日产国产高清一区二区三区 | 不卡大黄网站免费看| 国产精品盗摄一区二区三区| 91香蕉视频mp4| 午夜精品成人在线视频| 日韩精品一区二区三区视频在线观看| 狠狠色丁香久久婷婷综合_中 | 成人深夜在线观看| 亚洲另类在线视频| 欧美一区二区三区在| 国产在线精品国自产拍免费| 国产精品久久久久天堂| 在线观看视频一区| 毛片av一区二区三区| 国产亚洲欧洲一区高清在线观看| 99久久精品国产导航| 五月天久久比比资源色| 国产亚洲美州欧州综合国| 色老头久久综合| 另类的小说在线视频另类成人小视频在线 | 极品少妇xxxx偷拍精品少妇| 国产精品久久久久久久裸模 | 不卡av电影在线播放| 亚洲成a天堂v人片| 久久久久国色av免费看影院| 欧美午夜视频网站| 韩国欧美国产一区| 亚洲风情在线资源站| 久久精品一区二区三区av| 欧美性猛片xxxx免费看久爱| 国产精品1区2区3区在线观看| 亚洲免费资源在线播放| 亚洲精品一区二区三区影院| 日本久久电影网| 粉嫩aⅴ一区二区三区四区| 亚洲成人福利片| 中文字幕制服丝袜成人av| 欧美一区二区三区四区久久| 99综合影院在线| 国产一区二区在线视频| 婷婷成人综合网| 亚洲欧美日韩系列| 国产欧美日韩精品a在线观看| 欧美日韩国产小视频| 91在线小视频| 国产 日韩 欧美大片| 精品一区二区三区免费视频| 亚洲一卡二卡三卡四卡无卡久久| 日本一区二区视频在线| 日韩欧美国产三级| 欧美一区二区免费观在线| 欧洲精品在线观看| 91浏览器在线视频| 成人激情免费网站| 丁香网亚洲国际| 国产乱码字幕精品高清av | 成人av在线资源| 国产米奇在线777精品观看| 日韩福利电影在线| 男人的j进女人的j一区| 亚洲成人av福利| 天堂在线一区二区| 香蕉加勒比综合久久| 亚洲成av人在线观看| 亚洲高清在线精品| 舔着乳尖日韩一区| 亚洲国产aⅴ成人精品无吗| 亚洲成年人影院| 婷婷成人综合网| 蜜桃视频在线一区| 久久99精品久久久久久动态图| 婷婷国产v国产偷v亚洲高清| 日韩精品91亚洲二区在线观看 | 国产精品一二二区| 国产精品99久久久久| 国产激情一区二区三区四区| 国产精品综合二区| caoporn国产精品| 色婷婷综合久久久久中文| 色综合久久六月婷婷中文字幕| 91在线小视频| 欧美日本不卡视频| 日韩欧美中文字幕制服| 日韩视频免费观看高清完整版在线观看| 欧美日韩国产高清一区二区三区 | 日韩精品中文字幕一区| 久久亚洲欧美国产精品乐播| 国产精品视频在线看| 1024精品合集| 亚洲国产精品精华液网站| 青青草原综合久久大伊人精品| 美女一区二区视频| 国产福利91精品一区| 色婷婷av一区二区三区之一色屋| 欧美色综合网站| 精品福利一二区| 中文字幕在线不卡视频| 亚洲一区在线看| 精品一区二区三区蜜桃| 99久久er热在这里只有精品15| 欧美午夜视频网站| 久久久精品日韩欧美| 亚洲激情av在线| 久久精品国产第一区二区三区| 国产另类ts人妖一区二区| 97久久精品人人做人人爽| 欧美一区在线视频| 中文一区一区三区高中清不卡| 亚洲国产精品人人做人人爽| 国精产品一区一区三区mba视频 | 国产精品1区2区| 欧美三级电影网站| 国产欧美一区二区精品性| 亚洲国产综合色| 国产成人免费在线视频| 欧美日韩一卡二卡三卡| 国产欧美日韩亚州综合| 日本不卡一区二区三区| 不卡电影一区二区三区| 日韩视频一区在线观看| 亚洲一区二区三区中文字幕| 国产激情91久久精品导航 | 亚洲一区二区av在线| 国产精品一品视频| 6080午夜不卡| 日韩美女久久久| 国产高清久久久| 欧美疯狂性受xxxxx喷水图片| 中文字幕日韩一区| 国模冰冰炮一区二区| 678五月天丁香亚洲综合网| 亚洲欧美激情插| 国产精品中文欧美| 日韩精品最新网址| 夜夜操天天操亚洲| 不卡av在线免费观看| 亚洲精品一区在线观看| 人妖欧美一区二区| 欧美群妇大交群的观看方式| 亚洲日本成人在线观看| 国产91精品在线观看| 久久综合色婷婷| 美女在线一区二区| 欧美精品久久99久久在免费线 | 狠狠色综合播放一区二区| 欧美三级电影在线看| 有坂深雪av一区二区精品| 春色校园综合激情亚洲| 国产亚洲美州欧州综合国| 久久成人综合网| 欧美一区二区黄色| 日韩精品一二区| 欧美另类一区二区三区| 亚洲狠狠爱一区二区三区| 在线精品视频一区二区三四| 亚洲三级电影网站| 色网综合在线观看| 亚洲精选免费视频| 欧美最猛性xxxxx直播| 亚洲自拍偷拍欧美| 欧美日韩视频不卡| 视频一区国产视频| 91精品国模一区二区三区| 日韩精品国产精品| 日韩一区二区三区视频| 久久99精品国产.久久久久久 | 成人激情小说乱人伦| 国产亚洲综合av| av电影在线不卡| 亚洲精品久久久久久国产精华液| 色悠悠久久综合| 亚洲一区二区三区四区中文字幕| 欧美亚洲动漫精品| 日韩av网站免费在线| 日韩写真欧美这视频| 国产一区二区三区免费在线观看| 26uuu色噜噜精品一区| 精品国产一区二区三区忘忧草 | 视频一区二区三区中文字幕| 色妞www精品视频| 亚洲国产美女搞黄色| 欧美精品九九99久久| 国产一区中文字幕| 国产精品久99| 欧美性猛交xxxx乱大交退制版| 极品少妇一区二区三区精品视频| 欧美成人vr18sexvr| 免费成人av资源网| 精品福利av导航| 国内外精品视频| 久久久国产午夜精品| 国产成人av一区二区| 国产精品色眯眯|