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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? matrix.cpp

?? 該軟件為BP網(wǎng)絡(luò)的仿真軟件
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
			{
				break;
			}

		}

	}

	// Using for debugging
	//CString strHideLayerValveValue = TEXT("TempHideLayerValveValue.txt");
	//cMatrixHideLayerValveValue.SaveDataToFile (strHideLayerValveValue);

	// 根據(jù)網(wǎng)絡(luò)參數(shù)設(shè)置隱含層到輸出層的權(quán)值矩陣的行列數(shù)
	cMatrixHideToOutputWeightValue.SetMatrixRowAndCol (nOutputLayerNumber,nHideLayerNumber);

	nIndex = 0;
	nVerifyRowNum = 0;
	
	// 讀取文件中的隱含層到輸出層的權(quán)值矩陣到相應(yīng)的矩陣對象中
	while(dataFile.ReadString (strData))
	{
		strData.TrimLeft ();
		strData.TrimRight ();

		if((strData.Find (cFirstCharacter)) == 0)
		{
			continue;
		}
		else
		{
			
			// 裝入文本文件的數(shù)據(jù)到相對應(yīng)的矩陣中
			
			strData.TrimLeft ();
			strData.TrimRight ();

			// 驗(yàn)證每行的列數(shù)是否與第一行的列數(shù)相等
			unsigned int nVerifyColNum = 0;

			do
			{
				nIndex = strData.Find (SPACE_CHARACTER);

				++nVerifyColNum;

				if(nIndex != -1)
				{
					// 提取字符串的子字符串,即提取一個(gè)double型實(shí)數(shù)數(shù)據(jù)
					CString strDoubleNumber = strData.Left (nIndex);	

					// 將字符串轉(zhuǎn)換為double型實(shí)數(shù)
					double RealNumber = atof(strDoubleNumber);

					cMatrixHideToOutputWeightValue.m_pTMatrix [nVerifyRowNum][nVerifyColNum - 1] = RealNumber;

					strData = strData.Right (strData.GetLength () - nIndex -1);

					// 去掉多余的空格
					strData.TrimLeft ();

				}
				else
				{
					double RealNumber = atof(strData);

					cMatrixHideToOutputWeightValue.m_pTMatrix [nVerifyRowNum][nVerifyColNum - 1] = RealNumber;
				}

			}while(nIndex != -1);

			if(nVerifyColNum != cMatrixHideToOutputWeightValue.m_nCol)
			{
				CString strRowNumber;
				strRowNumber.Format("%d",nVerifyRowNum + 1);

				CString strColNumber;
				strColNumber.Format("%d",m_nCol);

				CString strVerifyColNumber;
				strVerifyColNumber.Format("%d",nVerifyColNum);

				CString strMessage =  CString(TEXT("文本文件第")) + strRowNumber + CString(TEXT("行一共有")) + strVerifyColNumber + CString(TEXT("列,與第一行中的列數(shù)")) + strColNumber + CString(TEXT("不相等!"));

				LPCTSTR lpszText = "";
				lpszText = (LPCTSTR)strMessage;

				::AfxMessageBox (lpszText,MB_OK | MB_ICONERROR);
				dataFile.Close ();
				return FALSE;
			}

			++nVerifyRowNum;

			if( nVerifyRowNum == cMatrixHideToOutputWeightValue.m_nRow )
			{
				break;
			}

		}

	}

	// Using for debugging
	//CString strHideToOutputWeightValue = TEXT("TempHideToOutputWeightValue.txt");
	//cMatrixHideToOutputWeightValue.SaveDataToFile (strHideToOutputWeightValue);

	// 根據(jù)網(wǎng)絡(luò)參數(shù)設(shè)置輸出層的閥值矩陣的行列數(shù)
	cMatrixOutputLayerValveValue.SetMatrixRowAndCol (nOutputLayerNumber,(unsigned int)1);

	nIndex = 0;
	nVerifyRowNum = 0;
	
	// 讀取文件中的輸出層的閥值矩陣到相應(yīng)的矩陣對象中
	while(dataFile.ReadString (strData))
	{
		strData.TrimLeft ();
		strData.TrimRight ();

		if((strData.Find (cFirstCharacter)) == 0)
		{
			continue;
		}
		else
		{
			
			// 裝入文本文件的數(shù)據(jù)到相對應(yīng)的矩陣中
			
			strData.TrimLeft ();
			strData.TrimRight ();

			// 驗(yàn)證每行的列數(shù)是否與第一行的列數(shù)相等
			unsigned int nVerifyColNum = 0;

			do
			{
				nIndex = strData.Find (SPACE_CHARACTER);

				++nVerifyColNum;

				if(nIndex != -1)
				{
					// 提取字符串的子字符串,即提取一個(gè)double型實(shí)數(shù)數(shù)據(jù)
					CString strDoubleNumber = strData.Left (nIndex);	

					// 將字符串轉(zhuǎn)換為double型實(shí)數(shù)
					double RealNumber = atof(strDoubleNumber);

					cMatrixOutputLayerValveValue.m_pTMatrix [nVerifyRowNum][nVerifyColNum - 1] = RealNumber;

					strData = strData.Right (strData.GetLength () - nIndex -1);

					// 去掉多余的空格
					strData.TrimLeft ();

				}
				else
				{
					double RealNumber = atof(strData);

					cMatrixOutputLayerValveValue.m_pTMatrix [nVerifyRowNum][nVerifyColNum - 1] = RealNumber;
				}

			}while(nIndex != -1);

			if(nVerifyColNum != cMatrixOutputLayerValveValue.m_nCol)
			{
				CString strRowNumber;
				strRowNumber.Format("%d",nVerifyRowNum + 1);

				CString strColNumber;
				strColNumber.Format("%d",m_nCol);

				CString strVerifyColNumber;
				strVerifyColNumber.Format("%d",nVerifyColNum);

				CString strMessage =  CString(TEXT("文本文件第")) + strRowNumber + CString(TEXT("行一共有")) + strVerifyColNumber + CString(TEXT("列,與第一行中的列數(shù)")) + strColNumber + CString(TEXT("不相等!"));

				LPCTSTR lpszText = "";
				lpszText = (LPCTSTR)strMessage;

				::AfxMessageBox (lpszText,MB_OK | MB_ICONERROR);
				dataFile.Close ();
				return FALSE;
			}

			++nVerifyRowNum;

			if( nVerifyRowNum == cMatrixOutputLayerValveValue.m_nRow )
			{
				break;
			}

		}

	}

	// Using for debugging
	//CString strOutputLayerValveValue = TEXT("TempOutputLayerValveValue.txt");
	//cMatrixOutputLayerValveValue.SaveDataToFile (strOutputLayerValveValue);



	dataFile.Close ();

	return TRUE;
}



bool CMatrix::SaveDataToFile (CString& strFileName)
{
	CStdioFile dataFile;
	LPCTSTR	lpszFileName = "";

	// CString convert to LPCTSTR
	strFileName.TrimLeft ();
	strFileName.TrimRight ();

	lpszFileName = (LPCTSTR)strFileName;

	if(!dataFile.Open (lpszFileName,CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite | CFile::typeText))
	{
		::AfxMessageBox(TEXT("不能創(chuàng)建文件!"),MB_OK | MB_ICONERROR);
		dataFile.Close ();
		return false;
	}
	
	dataFile.SeekToEnd ();

	// 將對象(矩陣)中的數(shù)據(jù)寫進(jìn)文件
	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			 CString strRealNumber;

			 strRealNumber.Format ("%.16f  ", m_pTMatrix [i][j]);

			 // Using for debugging
			 //double nReadNumber = m_pTMatrix [i][j];

			 char *pBuffer = new char[strRealNumber.GetLength()];

			 memcpy(pBuffer,strRealNumber,strRealNumber.GetLength());

			 dataFile.Write (pBuffer,strRealNumber.GetLength ());

		}
		
		if( i != m_nRow - 1)
		{
			//char ReturnNewline[] = "\r\n";
			char ReturnNewline[] = "\n";
			
			dataFile.Write (ReturnNewline, (sizeof(ReturnNewline) - 1)/sizeof(char));
		}

	}


	dataFile.Close ();
	return true;
}

/////////////////////////////////////////////////////////////////////////////
// 對矩陣中的元素進(jìn)行一次操作:
//		使矩陣變?yōu)閱挝魂?/////////////////////////////////////////////////////////////////////////////

void CMatrix::Eye()
{
	// Verify whether the rows is equal to the columns or not
	if(m_nRow != m_nCol)
	{
		::AfxMessageBox (TEXT("此矩陣的行列數(shù)不相等!不能轉(zhuǎn)變?yōu)閱挝魂?"),MB_OK | MB_ICONERROR);
		return;
	}
	
	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			if(i == j)
			{
				m_pTMatrix [i][j] =	1;
			}
			else
			{
				m_pTMatrix [i][j] =	0;
			}
		}

	}


}


/////////////////////////////////////////////////////////////////////////////
// Parameter:
//		CMatrix& cMatrix:		被拷貝的數(shù)據(jù)源
//		unsigned int nIndex:	被拷貝的數(shù)據(jù)在對象中的開始索引位置,從0開始
// Purpose:
//		This function will copy all the data of the cMatrix
// Notes:
//		此對象必須是列向量!!!
/////////////////////////////////////////////////////////////////////////////

void CMatrix::GetMatrixData(CMatrix& cMatrix, unsigned int nIndex)
{
	if(m_nCol != 1)
	{
		::AfxMessageBox (TEXT("拷貝的矩陣不是列向量!"),MB_OK | MB_ICONERROR);
		return;
	}

	if((m_nRow - nIndex) < (cMatrix.m_nRow * cMatrix.m_nCol))
	{
		::AfxMessageBox (TEXT("拷貝矩陣的空間容量不足!"),MB_OK | MB_ICONERROR);
		return;
	}

	for(unsigned int i=0; i < cMatrix.m_nRow; i++)
	{
		for(unsigned int j=0; j < cMatrix.m_nCol; j++)
		{
			m_pTMatrix [nIndex + i * cMatrix.m_nCol + j][0] = cMatrix.m_pTMatrix [i][j];
		}

	}

}


/////////////////////////////////////////////////////////////////////////////
// Parameter:
//		CMatrix& cMatrix:		被填充的矩陣
//		unsigned int nIndex:	被拷貝的數(shù)據(jù)在對象中的開始索引位置
// Purpose:
//		This function will copy part of the object data into cMatrix
// Notes:
//		The object must be column vector!!!
/////////////////////////////////////////////////////////////////////////////

void CMatrix::SetMatrixData(CMatrix& cMatrix, unsigned int nIndex)
{
	// Verify whether the colunm number is 1
	if(m_nCol != 1)
	{
		::AfxMessageBox (TEXT("本矩陣對象不是列向量,不滿足條件!"),MB_OK | MB_ICONERROR);
		return;
	}

	// Verify whether the number of the object element is enough to be copyed
	if((m_nRow - nIndex) < (cMatrix.m_nRow * cMatrix.m_nCol))
	{
		::AfxMessageBox (TEXT("對象中的元素?cái)?shù)量不足!"),MB_OK | MB_ICONERROR);
		return;
	}


	for(unsigned int i=0; i < cMatrix.m_nRow; i++)
	{
		for(unsigned int j=0; j < cMatrix.m_nCol; j++)
		{
			cMatrix.m_pTMatrix [i][j] = m_pTMatrix [nIndex + i * cMatrix.m_nCol + j][0];

			// Using for debugging
			//unsigned int nIndexNumber = nIndex + i * cMatrix.m_nRow + j;
			//double nData = cMatrix.m_pTMatrix [i][j];

		}
	}

}


/////////////////////////////////////////////////////////////////////////////
// Parameter:
//		CMatrix& cMatrix:		被填充的矩陣
//		unsigned int nIndex:	被拷貝的數(shù)據(jù)在對象中的開始索引位置
//		unsigned int nRow:		被填充的數(shù)據(jù)在被填充對象中的行索引
// Purpose:
//		This function will copy part of the object data to fill the special 
// row of the cMatrix
//	Notes:
//		The object must be column vector!!!
/////////////////////////////////////////////////////////////////////////////

void CMatrix::SetMatrixRowData(CMatrix& cMatrix, unsigned int nIndex, unsigned int nRow)
{
	// Verify whether the column number is 1
	if(m_nCol != 1)
	{
		::AfxMessageBox (TEXT("本矩陣對象不是列向量,不滿足條件!"),MB_OK | MB_ICONERROR);
		return;
	}

	// Verify whether the number of the object element is enough to be copyed
	if((m_nRow - nIndex) < cMatrix.m_nCol )
	{
		::AfxMessageBox (TEXT("對象的元素?cái)?shù)量不足!"),MB_OK | MB_ICONERROR);
		return;
	}

	for(unsigned int i=0; i < cMatrix.m_nCol; i++)
	{
		cMatrix.m_pTMatrix [nRow][i] = m_pTMatrix [nIndex + i][(unsigned int)0];
	}

}


/////////////////////////////////////////////////////////////////////////////
// Parameter:
//		CMatrix& cMatrix:		被拷貝的數(shù)據(jù)源
//		unsigned int nIndex:	被拷貝的數(shù)據(jù)在對象中的開始索引位置
//		unsigned int nRow:		被拷貝的數(shù)據(jù)在被拷貝對象中的行索引(從0開始)
// Purpose:
//		This function will copy all the data of the cMatrix
//	Notes:
//		此對象必須是列向量!!!
/////////////////////////////////////////////////////////////////////////////

void CMatrix::GetMatrixRowData(CMatrix& cMatrix, unsigned int nIndex, unsigned int nRow)
{
	if(m_nCol != 1)
	{
		::AfxMessageBox (TEXT("拷貝的矩陣不是列向量!"),MB_OK | MB_ICONERROR);
		return;
	}

	if((m_nRow - nIndex) < cMatrix.m_nCol)
	{
		::AfxMessageBox (TEXT("拷貝矩陣的空間容量不足!"),MB_OK | MB_ICONERROR);
		return;
	}
	
	for(unsigned int i=0; i < cMatrix.m_nCol; i++)
	{
		m_pTMatrix [nIndex + i][(unsigned int)0] = cMatrix.m_pTMatrix [nRow][i];
	}

}

void CMatrix::SetMatrixRowNumber(unsigned int nRow)
{
	m_nRow = nRow;

	m_pTMatrix.resize (m_nRow);
	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			m_pTMatrix[i].resize (m_nCol);
			m_pTMatrix[i][j] = (double) 0;
		}
	}

}


void CMatrix::SetMatrixColNumber(unsigned int nCol)
{
	m_nCol = nCol;

	m_pTMatrix.resize (m_nRow);
	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			m_pTMatrix[i].resize (m_nCol);
			m_pTMatrix[i][j] = (double) 0;
		}
	}

}

/////////////////////////////////////////////////////////////////////////
// 設(shè)置矩陣的行列數(shù)
void CMatrix::SetMatrixRowAndCol(unsigned int nRow,unsigned int nCol)
{
	m_nRow = nRow;
	m_nCol = nCol;

	// 分配內(nèi)存
	m_pTMatrix.resize (m_nRow);
	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			m_pTMatrix[i].resize (m_nCol);
			m_pTMatrix[i][j] = (double) 0;
		}
	}

}


/////////////////////////////////////////////////////////////////////////////
// Initialize()
// 矩陣初始化函數(shù),矩陣的行列數(shù)目被初始化為零,矩陣中的元素全部初始化為零
/////////////////////////////////////////////////////////////////////////////

void CMatrix::Initialize()
{
	m_nRow = 0;
	m_nCol = 0;

	m_pTMatrix.resize (m_nRow);
	for(unsigned int i=0; i < m_nRow; i++)
	{
		for(unsigned int j=0; j < m_nCol; j++)
		{
			m_pTMatrix[i].resize (m_nCol);
			m_pTMatrix[i][j] = (double) 0;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影欧美电影有声小说| 亚洲精品自拍动漫在线| av不卡免费在线观看| 亚洲一区在线视频| 久久精品夜夜夜夜久久| 最新日韩在线视频| 久久亚洲综合色| 欧美日韩久久久久久| 成人av在线资源网站| 国产一区二区网址| 石原莉奈在线亚洲二区| 亚洲精品一二三| 国产精品视频你懂的| 欧美xxxxxxxx| 欧美久久一二三四区| 91成人免费网站| 国产91色综合久久免费分享| 捆绑变态av一区二区三区| 爽爽淫人综合网网站| 一区二区三区不卡视频在线观看| 久久精品视频一区| 久久综合九色综合97婷婷| 欧美精品久久一区| 欧美日韩国产首页在线观看| 色婷婷综合久久久久中文一区二区 | 欧美女孩性生活视频| 93久久精品日日躁夜夜躁欧美| 国产一区二区91| 免费成人av在线| 午夜精品久久久久久久| 一区二区三区 在线观看视频| 国产精品久久午夜夜伦鲁鲁| 久久嫩草精品久久久精品一| 美女性感视频久久| 亚洲自拍都市欧美小说| 一区二区三区久久| 一区二区三区中文字幕| 亚洲少妇30p| 亚洲乱码日产精品bd| 一区二区三区四区精品在线视频 | 欧美一区二区日韩一区二区| 91精品国产综合久久久久久久久久| 欧美亚洲综合久久| 欧美性色黄大片| 欧美精品在线一区二区| 在线综合视频播放| 日韩欧美中文一区| 国产亚洲精久久久久久| 亚洲国产高清在线观看视频| 国产精品丝袜91| 亚洲视频电影在线| 亚洲第一搞黄网站| 蜜臀va亚洲va欧美va天堂| 美女国产一区二区| 国产成人综合视频| 99在线精品观看| 欧美综合一区二区| 91精品视频网| 日韩亚洲欧美在线| 久久久蜜臀国产一区二区| 中文字幕亚洲一区二区va在线| 亚洲精品视频免费看| 亚洲mv在线观看| 麻豆精品国产传媒mv男同| 国产成人综合网站| 日本久久一区二区| 日韩午夜在线观看| 欧美激情一区二区三区四区| 一区二区三区欧美在线观看| 三级不卡在线观看| 国产激情一区二区三区| 日本精品视频一区二区三区| 欧美一级夜夜爽| 国产三级精品视频| 亚洲一区二区黄色| 国产呦精品一区二区三区网站| 本田岬高潮一区二区三区| 欧美日韩中文字幕一区二区| 日韩欧美高清在线| 日韩一区中文字幕| 夜夜精品视频一区二区| 精品一区中文字幕| 91女神在线视频| 欧美一级精品大片| 亚洲欧洲韩国日本视频| 青草av.久久免费一区| 成年人网站91| 日韩视频一区二区| 亚洲欧美激情插| 激情文学综合插| 精品视频一区三区九区| 极品尤物av久久免费看| 91视频免费播放| 欧美一二三四区在线| 亚洲免费看黄网站| 国产.欧美.日韩| 制服丝袜亚洲精品中文字幕| 亚洲精选视频在线| 国产成人av一区二区| 91精品啪在线观看国产60岁| 亚洲色图欧美激情| 黄页网站大全一区二区| 欧美精品视频www在线观看| 中文字幕一区二区三区在线播放 | 国产精品国产三级国产aⅴ原创| 奇米影视在线99精品| 91国产丝袜在线播放| 中文字幕免费在线观看视频一区| 美女视频黄免费的久久| 欧美综合天天夜夜久久| 自拍视频在线观看一区二区| 国产精品一级在线| 欧美不卡在线视频| 日本成人在线电影网| 欧美日韩在线一区二区| 亚洲欧美激情插| 久久影院视频免费| 亚洲精品中文在线影院| 国产乱人伦偷精品视频免下载 | 在线不卡欧美精品一区二区三区| 国产精品乱码人人做人人爱| 久久66热re国产| 日韩欧美国产一区二区三区| 视频在线在亚洲| 欧美猛男男办公室激情| 亚洲精品乱码久久久久久| 91丨九色porny丨蝌蚪| 中文字幕第一区| 不卡一区二区三区四区| 国产精品污污网站在线观看 | 欧美日韩国产综合一区二区三区| 亚洲乱码国产乱码精品精的特点 | 欧美成人一区二区三区在线观看| 日韩成人av影视| 欧美一级精品大片| 久久国产精品色| 337p粉嫩大胆色噜噜噜噜亚洲| 免费观看久久久4p| 欧美精品一区二区三区高清aⅴ| 麻豆精品国产传媒mv男同| 精品国产乱码久久久久久免费| 蓝色福利精品导航| 久久欧美中文字幕| 粉嫩一区二区三区性色av| 国产精品丝袜91| 色美美综合视频| 亚洲第四色夜色| 欧美一级生活片| 国产一区二区不卡在线| 国产精品毛片a∨一区二区三区| av高清不卡在线| 一区二区三区免费看视频| 欧美裸体bbwbbwbbw| 美女视频黄a大片欧美| 国产日韩影视精品| 色综合欧美在线视频区| 日韩在线a电影| 久久久一区二区| 91在线porny国产在线看| 亚洲3atv精品一区二区三区| 在线精品视频小说1| 国产一区美女在线| 国产色产综合色产在线视频| 国产 日韩 欧美大片| 亚洲免费观看在线视频| 欧美一区日本一区韩国一区| 国产精品1区2区| 亚洲综合一区在线| 天堂精品中文字幕在线| 精品久久人人做人人爱| 99久久99久久精品免费观看| 天天操天天色综合| 久久精品夜色噜噜亚洲a∨| 一本一道综合狠狠老| 日本成人在线不卡视频| 国产精品乱人伦| 欧美一级淫片007| 91在线视频免费观看| 日本少妇一区二区| 国产精品美女久久久久久久久| 在线免费观看日本一区| 韩国女主播一区| 亚洲主播在线播放| 欧美激情综合五月色丁香 | 日本久久电影网| 激情av综合网| 亚洲国产裸拍裸体视频在线观看乱了| 精品国产乱码久久久久久图片 | 黑人巨大精品欧美一区| 亚洲人123区| 久久婷婷一区二区三区| 欧美日韩中文一区| 国产精品影音先锋| 丝袜亚洲精品中文字幕一区| 国产精品福利一区| 日韩欧美区一区二| 欧美三级视频在线观看| 成人高清视频免费观看| 国内精品伊人久久久久av一坑 | av资源网一区|