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

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

?? matrix.cpp

?? 該軟件為BP網絡的仿真軟件
?? CPP
?? 第 1 頁 / 共 4 頁
字號:

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

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

	lpszFileName = (LPCTSTR)strFileName;

	if(!dataFile.Open (lpszFileName,CFile::modeRead | CFile::typeText))
	{
		::AfxMessageBox (TEXT("不能打開要讀取數據的文件!"),MB_OK | MB_ICONERROR);
		dataFile.Close ();
		return FALSE;
	}

	// 用來存儲提取文本文件中一行的數據
	CString	strData;				 
	// 用來記錄文本文件中一共有多少行數據?
	unsigned int	nRow = 0;		

	/////////////////////////////////////////////////////////////////////////
	// Step 1: 得到文件的行列數目并根據文本文件的行列數目來設置對象(矩陣)的行
	// 列數目
	//

	while(dataFile.ReadString (strData) != FALSE)
	{
		++nRow;
	}

	// 根據文本文件的數據的行數設置對象(矩陣)的行數
	m_nRow = nRow;
	SetMatrixRowNumber(m_nRow);

	// 重新定位當前文件指針到文件開頭
	dataFile.SeekToBegin ();

	dataFile.ReadString (strData);
	strData.TrimLeft ();
	strData.TrimRight ();

	TCHAR	SPACE_CHARACTER = ' ';
	// 用來記錄文本文件中一行有多少列?
	unsigned int	nCol = 0;						
	
	// 空格符在字符串中的位置索引
	int nIndex = 0;

	do
	{
		nIndex = strData.Find (SPACE_CHARACTER);

		++nCol;

		// 提取字符串的子字符串,即提取一個double型實數數據
		//CString strDoubleNumber = strData.Left (nIndex);	

		// 將字符串轉換為double型實數
		//double RealNumber = atof(strDoubleNumber);

		//int nTempNumber = strData.GetLength ();

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

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

		// Use for debugging
		//int nTempNum = strData.GetLength ();

	}while(nIndex != -1);

	// 根據文本文件的數據的列數設置對象(矩陣)的列數
	m_nCol = nCol;
	SetMatrixColNumber(m_nCol);

	// End of Getting the Rows and Cols of the Text File
	/////////////////////////////////////////////////////////////////////////


	/////////////////////////////////////////////////////////////////////////
	// Step 2: 根據文本文件中的數據對矩陣賦值,并檢測每行的列數是否和第一行的
	// 列數相等,不相等提示出錯信息
	//

	// 重新定位當前文件指針到文件開頭
	dataFile.SeekToBegin ();

	// 對矩陣中的元素裝入文本文件的數據
	for(unsigned int i=0; i < m_nRow; i++)
	{
		dataFile.ReadString (strData);
		strData.TrimLeft ();
		strData.TrimRight ();

		// 驗證每行的列數是否與第一行的列數相等
		unsigned int nVerifyColNum = 0;

		do
		{
			nIndex = strData.Find (SPACE_CHARACTER);

			++nVerifyColNum;

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

				// 將字符串轉換為double型實數
				double RealNumber = atof(strDoubleNumber);

				m_pTMatrix [i][nVerifyColNum - 1] = RealNumber;
				//int nTempNumber = strData.GetLength ();

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

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

				// Using for debugging
				//double nReadNumber = m_pTMatrix [i][nVerifyColNum - 1];

				// Using for debugging
				//int nTempNum = strData.GetLength ();
			}
			else
			{
				double RealNumber = atof(strData);

				m_pTMatrix [i][nVerifyColNum - 1] = RealNumber;
			}

		}while(nIndex != -1);

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

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

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

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

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

			//strMessage.FormatMessage (lpszText);
			//::AfxMessageBox (lpszText,MB_OK);


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


	}


	dataFile.Close ();

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// Load the data from the file and reset the rows and the colums of 
// the matrixes.
// Parameter:
//		[in] strFileName
//		[out]cMatrixInputToHideWeightValue
//		[out]cMatrixHideLayerValveValue
//		[out]cMatrixHideToOutputWeightValue
//		[out]cMatrixOutputLayerValveValue
//		[out]nInputLayerNumber
//		[out]nHideLayerNumber
//		[out]nOutputLayerNumber
//		[out]nComboArithmetic
//		[out]nComboFunc
/////////////////////////////////////////////////////////////////////////////

bool CMatrix::LoadDataFromFileSpecial (CString& strFileName,
										CMatrix& cMatrixInputToHideWeightValue,
										CMatrix& cMatrixHideLayerValveValue,
										CMatrix& cMatrixHideToOutputWeightValue,
										CMatrix& cMatrixOutputLayerValveValue,
										unsigned int &nInputLayerNumber,
										unsigned int &nHideLayerNumber,
										unsigned int &nOutputLayerNumber,
										int &nComboArithmetic,
										int	&nComboFunc)
{
	CStdioFile dataFile;
	LPCTSTR	lpszFileName = "";

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

	lpszFileName = (LPCTSTR)strFileName;

	if(!dataFile.Open (lpszFileName,CFile::modeRead | CFile::typeText))
	{
		::AfxMessageBox (TEXT("不能打開要讀取的數據文件!!!"),MB_OK | MB_ICONERROR);
		dataFile.Close ();
		return FALSE;
	}

	// 提取網絡參數
	dataFile.SeekToBegin ();

	// 用來存儲提取文本文件中一行的數據
	CString	strData;	
	// 注釋標志符號
	TCHAR cFirstCharacter = '#';
	// 空格符號
	TCHAR SPACE_CHARACTER = ' ';
	// 空格符在字符串中的位置索引
	int nIndex = 0;
	
	// 讀取文件中的網絡的輸入層數目
	while(dataFile.ReadString (strData))
	{
		strData.TrimLeft ();
		strData.TrimRight ();
		
		if((strData.Find (cFirstCharacter)) == 0)
		{
			continue;
		}
		else
		{
			LPCSTR strInputLayerNumber = (LPCSTR)strData;

			nInputLayerNumber = (unsigned int)atoi(strInputLayerNumber);

			break;
			 
		}

	}

	// 讀取文件中的網絡的隱含層數目
	while(dataFile.ReadString (strData))
	{
		strData.TrimLeft ();
		strData.TrimRight ();
		
		if((strData.Find (cFirstCharacter)) == 0)
		{
			continue;
		}
		else
		{
			LPCSTR strHideLayerNumber = (LPCSTR)strData;

			nHideLayerNumber = (unsigned int)atoi(strHideLayerNumber);

			break;
		}

	}

	// 讀取文件中的網絡的輸出層數目
	while(dataFile.ReadString (strData))
	{
		strData.TrimLeft ();
		strData.TrimRight ();
		
		if((strData.Find (cFirstCharacter)) == 0)
		{
			continue;
		}
		else
		{
			LPCSTR strOutputLayerNumber = (LPCSTR)strData;

			nOutputLayerNumber = (unsigned int)atoi(strOutputLayerNumber);

			break;
		}

	}

	// 讀取文件中的訓練網絡所使用的算法的索引值
	while(dataFile.ReadString (strData))
	{
		strData.TrimLeft ();
		strData.TrimRight ();
		
		if((strData.Find (cFirstCharacter)) == 0)
		{
			continue;
		}
		else
		{
			LPCSTR strComboArithmetic = (LPCSTR)strData;

			nComboArithmetic = atoi(strComboArithmetic);

			break;
		}

	}

	// 讀取文件中的網絡的使用的函數的索引值
	while(dataFile.ReadString (strData))
	{
		strData.TrimLeft ();
		strData.TrimRight ();
		
		if((strData.Find (cFirstCharacter)) == 0)
		{
			continue;
		}
		else
		{
			LPCSTR strComboFunc = (LPCSTR)strData;

			nComboFunc = atoi(strComboFunc);

			break;
		}

	}


	// 根據網絡參數設置輸入層到隱含層的權值矩陣的行列數
	cMatrixInputToHideWeightValue.SetMatrixRowAndCol (nHideLayerNumber,nInputLayerNumber);

	// 驗證矩陣的行數
	unsigned int nVerifyRowNum = 0;

	// 讀取文件中的輸入層到隱含層的權值矩陣到相應的矩陣對象中
	while(dataFile.ReadString (strData))
	{
		strData.TrimLeft ();
		strData.TrimRight ();

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

			// 驗證每行的列數是否與第一行的列數相等
			unsigned int nVerifyColNum = 0;

			do
			{
				nIndex = strData.Find (SPACE_CHARACTER);

				++nVerifyColNum;

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

					// 將字符串轉換為double型實數
					double RealNumber = atof(strDoubleNumber);

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

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

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

				}
				else
				{
					double RealNumber = atof(strData);

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

			}while(nIndex != -1);

			if(nVerifyColNum != cMatrixInputToHideWeightValue.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("列,與第一行中的列數")) + strColNumber + CString(TEXT("不相等!"));

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

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

			++nVerifyRowNum;

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

		}

	}

	// Using for debugging
	//CString strInputToHideWeightValue = TEXT("TempInputToHideWeightValue.txt");
	//cMatrixInputToHideWeightValue.SaveDataToFile (strInputToHideWeightValue);

	

	// 根據網絡參數設置隱含層的閥值矩陣的行列數
	cMatrixHideLayerValveValue.SetMatrixRowAndCol (nHideLayerNumber,(unsigned int)1);

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

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

			// 驗證每行的列數是否與第一行的列數相等
			unsigned int nVerifyColNum = 0;

			do
			{
				nIndex = strData.Find (SPACE_CHARACTER);

				++nVerifyColNum;

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

					// 將字符串轉換為double型實數
					double RealNumber = atof(strDoubleNumber);

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

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

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

				}
				else
				{
					double RealNumber = atof(strData);

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

			}while(nIndex != -1);

			if(nVerifyColNum != cMatrixHideLayerValveValue.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("列,與第一行中的列數")) + strColNumber + CString(TEXT("不相等!"));

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

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

			++nVerifyRowNum;

			if( nVerifyRowNum == cMatrixHideLayerValveValue.m_nRow )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品主播直播| 精品国产乱码久久久久久图片 | 日韩你懂的在线播放| 精品国产区一区| 极品瑜伽女神91| 色综合一个色综合亚洲| 7777精品伊人久久久大香线蕉 | 欧美日本一区二区三区四区| 亚洲精品在线电影| 国产福利不卡视频| 欧美日韩五月天| 亚洲视频在线观看三级| 日本成人在线电影网| 成人av片在线观看| 日韩一级二级三级| 日韩制服丝袜先锋影音| 色屁屁一区二区| 国产精品乱码妇女bbbb| 亚洲男人都懂的| 成人精品电影在线观看| 一区二区三区不卡视频 | 国产精品白丝在线| 欧美日韩国产综合草草| 国产伦精品一区二区三区视频青涩| 欧美精品 国产精品| 伊人性伊人情综合网| 91网页版在线| 亚洲欧美电影院| 日韩欧美国产综合一区| 99re66热这里只有精品3直播| 国产精品久久综合| 欧美久久一二区| 成人天堂资源www在线| 国产精品久久久久久久久快鸭| 欧美日韩精品电影| 成人激情视频网站| 日韩精品成人一区二区在线| 欧美国产精品v| 成人app网站| 蜜臀av性久久久久蜜臀av麻豆| 欧美军同video69gay| 成人精品电影在线观看| 久久精品国产第一区二区三区| 日韩精品一区二区三区中文不卡| 99热这里都是精品| 一区二区国产视频| 久久久国产精品麻豆| 成人性生交大合| 麻豆高清免费国产一区| 亚洲与欧洲av电影| 欧美精品久久天天躁| 色综合中文字幕国产| 久久狠狠亚洲综合| 亚洲午夜av在线| 欧美精品一区二| 91网站在线观看视频| 国产成人在线视频网址| 免费成人av在线| 国产精品久久夜| 久久久久久影视| 26uuu欧美| 欧美电影免费观看高清完整版在| 欧美精品第一页| 在线观看网站黄不卡| 首页欧美精品中文字幕| 亚洲精品高清在线| 亚洲视频一二区| 日韩伦理免费电影| 国产精品欧美一区喷水| 国产亚洲午夜高清国产拍精品| 91免费视频观看| av亚洲产国偷v产偷v自拍| 国产成人在线影院| 高清av一区二区| 亚洲一区二区美女| 亚洲乱码中文字幕| 成人免费一区二区三区在线观看 | 亚洲韩国精品一区| 亚洲一区电影777| 亚洲高清不卡在线| 亚洲图片欧美色图| 日韩和的一区二区| 日韩中文字幕区一区有砖一区 | 《视频一区视频二区| 国产精品乱码久久久久久| 综合精品久久久| 亚洲男人的天堂av| 亚洲午夜久久久久中文字幕久| 亚洲一区二区在线视频| 日本aⅴ免费视频一区二区三区 | 91福利视频久久久久| 国产一区二区三区高清播放| 国产河南妇女毛片精品久久久| 国产+成+人+亚洲欧洲自线| 99久久99久久综合| 欧美在线免费观看视频| 欧美一级久久久| 国产农村妇女精品| 欧美成人bangbros| 欧美精品少妇一区二区三区| 日韩一级免费观看| 欧美国产激情二区三区| 一区二区免费在线播放| 蜜桃av一区二区在线观看 | 无码av中文一区二区三区桃花岛| 中文字幕巨乱亚洲| 亚洲私人黄色宅男| 日韩av高清在线观看| 国产综合久久久久久鬼色 | 在线免费不卡电影| 日韩欧美在线影院| 中文字幕在线不卡| 日本伊人午夜精品| 成人黄页毛片网站| 91精品欧美综合在线观看最新| 久久久一区二区| 亚洲福利视频三区| 国产精品18久久久久久久网站| 91黄色免费观看| 精品成人一区二区三区| 亚洲美女屁股眼交3| 久久se精品一区二区| av亚洲精华国产精华| 欧美刺激脚交jootjob| 亚洲欧美激情视频在线观看一区二区三区 | 精品国产99国产精品| 亚洲精品乱码久久久久| 韩国欧美国产一区| 欧美亚洲国产怡红院影院| 一本色道亚洲精品aⅴ| 精品国产91久久久久久久妲己| 亚洲视频综合在线| 国产精品白丝jk黑袜喷水| 欧美三级电影精品| 中文字幕一区二区三| 韩国女主播成人在线观看| 欧美色图第一页| 18成人在线观看| 国产精品一二三区| 日韩区在线观看| 天堂久久久久va久久久久| 99久久99久久免费精品蜜臀| 久久午夜电影网| 裸体歌舞表演一区二区| 欧美影视一区二区三区| 综合欧美亚洲日本| 国产精品亚洲视频| 欧美电视剧在线看免费| 亚洲成人av免费| 国产自产2019最新不卡| 3d动漫精品啪啪1区2区免费| 亚洲在线一区二区三区| 色综合天天综合色综合av | 国产九九视频一区二区三区| 欧美一区二区三区免费观看视频| 精品国产乱码久久久久久闺蜜| 日韩影视精彩在线| 欧美日韩亚洲综合在线| 亚洲精品久久久蜜桃| 色欧美乱欧美15图片| 亚洲天堂a在线| 97久久精品人人澡人人爽| 国产精品理伦片| av中文字幕不卡| 国产精品萝li| 91丨九色丨黑人外教| 中文字幕亚洲不卡| 一本色道a无线码一区v| 亚洲精品免费播放| 欧美综合一区二区| 午夜亚洲福利老司机| 欧美日韩国产综合草草| 免费高清视频精品| 精品国产凹凸成av人网站| 国产乱子伦一区二区三区国色天香| 日韩视频一区二区三区| 精品制服美女久久| 亚洲精品在线观| 成人av在线一区二区| 综合久久一区二区三区| 在线免费观看不卡av| 日韩**一区毛片| 日韩精品综合一本久道在线视频| 九色综合狠狠综合久久| 国产午夜精品久久久久久久| www.日韩精品| 亚洲午夜免费电影| 精品日本一线二线三线不卡| 国产精品一区二区久激情瑜伽| 国产精品水嫩水嫩| 欧美伊人久久大香线蕉综合69| 午夜精品一区在线观看| 精品福利av导航| jlzzjlzz欧美大全| 亚洲午夜在线观看视频在线| 欧美不卡一二三| 成人动漫一区二区| 亚洲成人精品一区二区| 精品电影一区二区三区| 91精品办公室少妇高潮对白|