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

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

?? qr_analysis.cpp

?? 用MFC實現的數據主成份分析
?? CPP
字號:
// QR_analysis.cpp: implementation of the QR_analysis class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ProGram2.h"
#include "QR_analysis.h"
#include "math.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

QR_analysis::QR_analysis()
{

}

QR_analysis::~QR_analysis()
{

}
void QR_analysis::run(CMatrix q)
{
	int m,n,i,j;
	n=q.GetNumRows();
	m=q.GetNumCols();
	double T,*row,*col,z;
	row= new double[n];
	col= new double[m];
	T=0;
	for(i=0;i<n;i++)
	{
		row[i]=0;
		for(j=0;j<m;j++)
		{
			row[i]=row[i]+q.GetElement(i,j);
			T=T+q.GetElement(i,j);
		}
	}

	for(j=0;j<m;j++)
	{	col[j]=0;
		for(i=0;i<n;i++)
		{
			col[j]=col[j]+q.GetElement(i,j);
		}
	}

	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{
			z=(q.GetElement(i,j)-row[i]*col[j]/T)/(sqrt(row[i]*col[j]));
			q.SetElement(i,j,z);
		}
	}

	delete[]row;
	delete[]col;
////////////////////////////////////////////////////////////////////////////////	
	CMatrix Z=q;
	//R_analysis
	//協方差A
	CMatrix A;
	A=Z*Z.Transpose();
	double *pt;
//	int m,n,i,j;
	n=Z.GetNumRows();
	m=Z.GetNumCols();
	pt=new double[n];
	//cout<<"/n特征值和特征向量"<<endl;
	//特征值和特征向量
	//show(A.Eigenv());
	//特征值開方后的對角陣
	CMatrix N(n);
	N.Init(n,n);

	for(i=0;i<n;i++)
	{
		N.SetElement(i,i,sqrt(A.Eigenv().GetElement(0,i)));
	}

	//選擇貢獻率最大的兩個的特征向量和因子載荷陣
	CMatrix U(n,2);
	for(i=0;i<n;i++)
	{
		for(j=0;j<2;j++)
		{
			U.SetElement(i,j,A.Eigenv().GetElement(i+1,j));
		}
	}

	//cout<<"\n R因子載荷陣"<<endl;
	CMatrix Ar(n,2);
	for(j=0;j<2;j++)
	{
		for(i=0;i<n;i++)
		{
			Ar.SetElement(i,j,U.GetElement(i,j)*N.GetElement(j,j));
		}
	}

	//show(Ar);
	result2=Ar;
	//各樣品第一第二主成分值
	//cout<<"\n各樣品的主成分值"<<endl;
	CMatrix RS;
	RS=Z.Transpose()*U;
	//show(RS);
	result1=RS;
	//Q_analysis
	//cout<<"\n Q_analysis"<<endl;
	//對應前面的兩個特征值的在Q中的特征向量和因子載荷陣
	CMatrix V(m);
	V=Z.Transpose()*U;
	//show(V);
	//cout<<"\n Q因子載荷陣"<<endl;
	CMatrix Aq(m,2);

	for(j=0;j<2;j++)
	{
		for(i=0;i<m;i++)
		{
			Aq.SetElement(i,j,V.GetElement(i,j)*N.GetElement(j,j));
		}
	}

	//show(Aq);
	result4=Aq;
	////各變量第一第二主成分值
	//cout<<"\n各變量的主成分值"<<endl;
	CMatrix QS;
	QS=Z*V;
	//show(QS);
	
	result3=QS;

	//畫圖
	//cout<<"\n選取第一和第二主成分的分值為x,y軸,劃出圖"<<endl;
}

void QR_analysis::plot(CMatrix CMatriB,CMatrix CMatriC)
{/*

	LRESULT CALLBACK WinSunProc(
	  HWND hwnd,      // handle to window
	  UINT uMsg,      // message identifier
	  WPARAM wParam,  // first message parameter
	  LPARAM lParam   // second message parameter
	);


	int WINAPI WinMain(
	  HINSTANCE hInstance,      // handle to current instance
	  HINSTANCE hPrevInstance,  // handle to previous instance
	  LPSTR lpCmdLine,          // command line
	  int nCmdShow              // show state
	)
	{
		WNDCLASS wndcls;
		wndcls.cbClsExtra=0;
		wndcls.cbWndExtra=0;
		wndcls.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
		wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
		wndcls.hIcon=LoadIcon(NULL,IDI_INFORMATION);
		wndcls.hInstance=hInstance;
		wndcls.lpfnWndProc=WinSunProc;
		wndcls.lpszClassName="R_Qanalysis";
		wndcls.lpszMenuName=NULL;
		wndcls.style=CS_HREDRAW | CS_VREDRAW;
		RegisterClass(&wndcls);

		HWND hwnd;
		hwnd=CreateWindow("R_Qanalysis","R-Q對應分析",WS_OVERLAPPEDWINDOW,
			250,100,800,600,NULL,NULL,hInstance,NULL);

		ShowWindow(hwnd,SW_SHOWNORMAL);
		UpdateWindow(hwnd);

		MSG msg;
		while(GetMessage(&msg,NULL,0,0))
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}

		return 0;
		
	}

	LRESULT CALLBACK WinSunProc(
	  HWND hwnd,      // handle to window
	  UINT uMsg,      // message identifier
	  WPARAM wParam,  // first message parameter
	  LPARAM lParam   // second message parameter
	)
	{
		switch(uMsg)
		{
		case WM_CHAR:
			//		char szChar[20];
			//		sprintf(szChar,"char is %d",wParam);
			//		MessageBox(hwnd,szChar,"weixin",0);
			break;
		case WM_LBUTTONDOWN:
			//		MessageBox(hwnd,"mouse clicked","R_Qanalysis",0);
			//		HDC hdc;
			//		hdc=GetDC(hwnd);
			//		TextOut(hdc,0,50,"計算機編程語言培訓",strlen("計算機編程語言培訓"));
			//		ReleaseDC(hwnd,hdc);
			break;




		case WM_PAINT:
			{
				HDC hDC;
				PAINTSTRUCT ps;
				hDC=BeginPaint(hwnd,&ps);
				//CRect rectClient;
				//GetClientRect(hDC,&rectClient);		
			
				double value1[12]={0.2368,0.2471,0.2568,1.2671,1.1161,0.1254,0.1397,0.149,0.1582,1.1675,0.1768,0.1871};
				CMatrix MatrixA(6,2,value1);
				double value2[6]={0.234,0.2342,0.3534,1.2323,0.2432,1.323};
				CMatrix MatrixB(3,2,value2);



				int n,m,i,j;
				n=MatrixA.GetNumRows();
				m=MatrixB.GetNumRows();
				//////////數據矩陣
				for(i=0;i<n;i++)
				{
					CString str1,str2;
					str1.Format("%f",MatrixA.GetElement(i,0));
					TextOut(hDC,50,20*i,str1,strlen(str1));
					str2.Format("%f",MatrixA.GetElement(i,1));
					TextOut(hDC,150,20*i,str2,strlen(str2));
				}

				for(i=0;i<m;i++)
				{
					CString str1,str2;
					str1.Format("%f",MatrixB.GetElement(i,0));
					TextOut(hDC,250,20*i,str1,strlen(str1));
					str2.Format("%f",MatrixB.GetElement(i,1));
					TextOut(hDC,350,20*i,str2,strlen(str2));
				}
			
				const double xOrg=150,yOrg=400;
				const double xMax=650,yMin=100;
				///////////實際數據的x,y最大值最小值		
				double dbXMax=MatrixA.GetElement(0,0),dbXMin=MatrixA.GetElement(0,0);
				double dbYMax=MatrixA.GetElement(0,1),dbYMin=MatrixA.GetElement(0,1);
				for(i=0;i<n-1;i++)
				{
					dbXMax=dbXMax>MatrixA.GetElement(i+1,0)?dbXMax:MatrixA.GetElement(i+1,0);
					dbXMin=MatrixA.GetElement(i+1,0)>dbXMin?dbXMin:MatrixA.GetElement(i+1,0);
					dbYMax=dbYMax>MatrixA.GetElement(i+1,1)?dbYMax:MatrixA.GetElement(i+1,1);
					dbYMin=dbYMin<MatrixA.GetElement(i+1,1)?dbYMin:MatrixA.GetElement(i+1,1);					
				}

				for(i=0;i<m;i++)
				{
					dbXMax=dbXMax>MatrixB.GetElement(i,0)?dbXMax:MatrixB.GetElement(i,0);
					dbXMin=MatrixB.GetElement(i,0)>dbXMin?dbXMin:MatrixB.GetElement(i,0);
					dbYMax=dbYMax>MatrixB.GetElement(i,1)?dbYMax:MatrixB.GetElement(i,1);
					dbYMin=dbYMin<MatrixB.GetElement(i,1)?dbYMin:MatrixB.GetElement(i,1);					
				}
			
				////////////換算比例	
				double dbXRatio=(xMax-xOrg)/(dbXMax-dbXMin);
				double dbYRatio=(yOrg-yMin)/(dbYMax-dbYMin);

			
				//	CString str;
				//	str.Format("%f",dbYMin);
				//	TextOut(hDC,400,500,str,strlen(str));
			
				////////////填色
				CPen penNewPen(PS_SOLID,1,RGB(0,0,255));
				CPen *ppenOldPen=(CPen *)SelectObject(hDC,&penNewPen);
				CBrush brushNewBrush(RGB(0,0,255));
				CBrush *pbrushOldBrush=(CBrush *)SelectObject(hDC,brushNewBrush);

				////////////畫點
				double x,y;
				for(i=0;i<n;i++)
				{
					x=dbXRatio*(MatrixA.GetElement(i,0)-dbXMin)+xOrg;
					y=yOrg-dbYRatio*(MatrixA.GetElement(i,1)-dbYMin);
					Ellipse(hDC,x-3,y-3,x+3,y+3);
					CString str;
					str.Format("%d",i+1);
					TextOut(hDC,x+6,y,str,strlen(str));

				}

				for(i=0;i<m;i++)
				{
					x=dbXRatio*(MatrixB.GetElement(i,0)-dbXMin)+xOrg;
					y=yOrg-dbYRatio*(MatrixB.GetElement(i,1)-dbYMin);
					Rectangle(hDC,x-3,y-3,x+3,y+3);
					CString str;
					str.Format("%d",i+1);
					TextOut(hDC,x+6,y,str,strlen(str));

				}
			
				///////////畫軸		
				double ox,oy;
				ox=dbXRatio*(0-dbXMin)+xOrg;
				oy=yOrg-dbYRatio*(0-dbYMin);
				Ellipse(hDC,ox-5,oy-5,ox+5,oy+5);
				MoveToEx(hDC,20,oy,0);
				LineTo(hDC,750,oy);
				LineTo(hDC,730,oy-10);
				MoveToEx(hDC,750,oy,0);
				LineTo(hDC,730,oy+10);
				MoveToEx(hDC,ox,530,0);
				LineTo(hDC,ox,30);
				LineTo(hDC,ox+10,50);
				MoveToEx(hDC,ox,30,0);
				LineTo(hDC,ox-10,50);
				CString str;
				str="(0,0)";
				TextOut(hDC,ox+5,oy+5,str,strlen(str));

				EndPaint(hwnd,&ps);
				break;
			}
		case WM_CLOSE:
			if(IDYES==MessageBox(hwnd,"是否真的結束?","weixin",MB_YESNO))
			{
				DestroyWindow(hwnd);
			}
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
			return DefWindowProc(hwnd,uMsg,wParam,lParam);
		}
		return 0;
	}*/

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日本国产视频| 亚洲国产aⅴ天堂久久| 最新不卡av在线| 免费成人在线视频观看| 成年人网站91| 欧美www视频| 午夜精品久久久久久久久| 国产麻豆视频一区二区| 欧美精品色一区二区三区| 中文字幕在线观看一区二区| 久久精品国产一区二区三| 在线观看一区二区视频| 国产精品麻豆欧美日韩ww| 国产综合色精品一区二区三区| 欧美网站一区二区| 中文字幕一区二区三区蜜月 | 黄色成人免费在线| 欧美无砖专区一中文字| 亚洲视频一区二区在线| 国产高清在线观看免费不卡| 欧美一区二区高清| 日本aⅴ免费视频一区二区三区| 色欧美片视频在线观看在线视频| 久久人人爽爽爽人久久久| 青青草视频一区| 欧美精品久久99久久在免费线 | 欧美亚洲国产bt| 亚洲色图第一区| 91视频一区二区| 亚洲日本在线看| 色哟哟一区二区三区| 国产精品第13页| 99精品视频一区二区| 国产精品久久久久久久久免费桃花| 国产精品一区二区黑丝| 久久久精品国产99久久精品芒果 | 亚洲成av人片一区二区三区| 色综合中文字幕| 亚洲精品视频在线观看免费| 91免费观看在线| 亚洲一区二区三区四区在线| 欧洲一区二区三区在线| 亚洲不卡av一区二区三区| 3d动漫精品啪啪一区二区竹菊| 日本视频一区二区| 久久久午夜电影| 成人听书哪个软件好| 亚洲伦理在线精品| 欧美视频日韩视频在线观看| 日本不卡高清视频| 久久久青草青青国产亚洲免观| 国产a久久麻豆| 亚洲激情图片qvod| 3d成人动漫网站| 国产精品一区二区在线观看不卡| 国产精品乱码人人做人人爱| 日本久久精品电影| 美女国产一区二区| 日本一区二区动态图| 色欧美片视频在线观看| 麻豆免费看一区二区三区| 久久久亚洲国产美女国产盗摄| aaa欧美日韩| 青青青爽久久午夜综合久久午夜| 国产日韩欧美a| 色综合 综合色| 日本伊人色综合网| 国产午夜亚洲精品理论片色戒| 色哟哟日韩精品| 久久精品国产亚洲高清剧情介绍| 国产精品婷婷午夜在线观看| 欧美日韩在线综合| 岛国精品一区二区| 日韩成人一区二区三区在线观看| 欧美韩国日本不卡| 日韩一区二区三区av| 成人激情小说乱人伦| 日韩中文欧美在线| 亚洲视频电影在线| 久久久美女艺术照精彩视频福利播放| 色综合久久六月婷婷中文字幕| 久久福利视频一区二区| 亚洲韩国精品一区| 国产精品久久久久影视| 精品欧美乱码久久久久久1区2区 | 日韩一级二级三级| 91免费视频网| 国产传媒久久文化传媒| 亚洲综合在线电影| 国产精品亚洲一区二区三区在线 | 成人精品在线视频观看| 亚洲国产视频a| 国产精品女同一区二区三区| 日韩欧美精品三级| 欧美日韩aaaaa| 欧美在线免费视屏| 91美女片黄在线观看| 国产盗摄女厕一区二区三区| 日本免费在线视频不卡一不卡二| 亚洲综合久久久| 自拍偷拍亚洲综合| 国产精品国产自产拍高清av王其| 精品电影一区二区| 欧美一区二区三区四区久久| 欧美日韩成人综合在线一区二区| 91丝袜美腿高跟国产极品老师 | 国产综合色视频| 精品88久久久久88久久久| 国产一区在线观看视频| 国产综合成人久久大片91| 亚洲国产一二三| 亚洲自拍偷拍欧美| 亚洲欧洲一区二区在线播放| 欧美激情中文字幕| 久久这里只有精品6| 日韩视频一区二区三区| 欧美一区二区三区在线看| 欧美老人xxxx18| 3d成人h动漫网站入口| 欧美日韩国产综合久久| 精品视频一区二区三区免费| 欧美日韩一级二级| 欧美日韩高清一区| 欧美精品乱码久久久久久按摩| 欧美另类videos死尸| 日韩一区二区三区观看| 337p粉嫩大胆色噜噜噜噜亚洲| 精品少妇一区二区三区视频免付费 | 精品国产1区二区| 欧美电影免费观看高清完整版| 日韩欧美中文字幕精品| 久久亚洲欧美国产精品乐播| 国产视频一区在线观看| 专区另类欧美日韩| 亚洲综合成人网| 久久99久国产精品黄毛片色诱| 精品夜夜嗨av一区二区三区| 国产91综合网| 在线观看一区二区视频| 日韩视频在线永久播放| 欧美国产综合一区二区| 亚洲综合精品自拍| 国内精品久久久久影院一蜜桃| 成人免费观看视频| 欧美精品 日韩| 久久精品人人做人人爽人人| 亚洲激情图片qvod| 韩国av一区二区三区四区| www.在线成人| 91精品国产麻豆国产自产在线| 久久亚洲精品小早川怜子| 亚洲欧美一区二区三区极速播放| 亚洲成人福利片| 国产99一区视频免费| 在线观看视频一区二区欧美日韩| 日韩欧美自拍偷拍| 亚洲天堂免费在线观看视频| 日韩电影在线观看电影| av在线一区二区| 91精品国产黑色紧身裤美女| 中文字幕亚洲一区二区va在线| 日本欧美加勒比视频| 99久久精品免费看| 欧美变态tickle挠乳网站| 亚洲免费在线视频一区 二区| 麻豆精品一区二区综合av| 99久久国产免费看| 精品88久久久久88久久久| 一区二区三区成人| 国产.欧美.日韩| 精品国产伦一区二区三区免费 | 国产三级精品视频| 亚洲6080在线| 在线中文字幕一区| 国产精品午夜在线观看| 麻豆国产精品视频| 欧美日韩国产影片| 一区二区三区四区亚洲| 粉嫩一区二区三区性色av| 欧美一区二区黄色| 午夜a成v人精品| 91成人免费电影| 亚洲黄色片在线观看| 99视频一区二区| 国产精品久久久久久久久免费樱桃 | 色94色欧美sute亚洲线路一ni| 国产视频一区在线播放| 久久精品久久99精品久久| 91精品国产综合久久久久久久| 一区二区三区四区不卡视频| 成人aa视频在线观看| 国产精品少妇自拍| 国产精品996| 国产三级久久久| 成人免费毛片片v| 国产精品久久久久天堂| www.成人在线| 亚洲免费观看在线观看| 91久久精品午夜一区二区| 亚洲精品国产成人久久av盗摄|