通信工程原理之基于COM的MatIab的參數(shù)處理[2]

互聯(lián)網(wǎng)技術(shù) 責任編輯:zap688 2012-03-20

摘要:(2)在VC平臺下創(chuàng)建名為PCA的基于對話框的MFC工程,添加一打開文件的按鈕控件,ID為ID_FILE_OPEN.篇幅所限只給出部分核心代碼,首先在Dlg類中添加3個私有成員變量用以保存Matlab讀取的數(shù)據(jù)及行列值,即:double*m_originData;longm_row,m_col;在響應(yīng)函數(shù)中添加如下代碼CFileDialogfileDlg(TRUE);fileDlg.m_ofn.lpstrTitle=“

 

(2)在VC平臺下創(chuàng)建名為PCA的基于對話框的MFC工程,添加一打開文件的按鈕控件,ID為ID_FILE_OPEN.篇幅所限只給出部分核心代碼,首先在Dlg類中添加3個私有成員變量用以保存Matlab讀取的數(shù)據(jù)及行列值,即:

double *m_originData; long   m_row, m_col;

在響應(yīng)函數(shù)中添加如下代碼

CFileDialog fileDlg(TRUE);

fileDlg.m_ofn.lpstrTitle=“請選擇你的excel數(shù)據(jù)”;

fileDlg.m_ofn.lpstrFilter=“Text Files(*.xls)*.xlsAll Files(*.*)*.*”;

if(IDOK==fileDlg.DoModal() {

CString fileName; IFileOpenclass *pfile;

VARIANT filePath,output,rowOutput,colOutput;

//m文件的輸入?yún)?shù)

fileName = fileDlg.GetPathName();

//獲取文件路徑并存于fileName中

CoInitialize(NULL);                                //COM初始化

HRESULT hr = CoCreateInstance(CLSID_FileOpenclass,NULL,CLSCTX_ALL,IID_IFileOpenclass,(void**)&pfile);

//新建COM實例

VariantInit(&filePath);              //VARIANT數(shù)據(jù)初始化

filePath.vt = VT_BSTR;           //指定filePath變量類型

//將fileName中保存的指定文件路徑名保存至filePath參數(shù)中

filePath.bstrVal = fileName.AllocSysString();

pfile->CExcelRead(3,&output,&rowOutput, &colOutput,filePath);

m_row=(long) rowOutput.dblVal;

//取出行列值及錄入數(shù)據(jù)

m_col = (long) colOutput.dblVal;

m_originData = (double *)malloc(sizeof(double)*m_row*m_

col); memcpy(m_originData,output.parray->pvData,m_row*m_

col*sizeof(double));

//將matlab讀入數(shù)據(jù)保存到m_originData供后面程序使用

} 上述C++代碼中省略了異常處理和相關(guān)的內(nèi)存、COM釋放代碼,由于代碼比較簡單所以不做進一步解析。請注意,下面將省略COM初始化及實例化等相同代碼。

[1]  [2]  [3]  [4]  [5]  

更多資料
更多課程
更多真題
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,本網(wǎng)站提供的以上信息僅供參考,如有異議,請考生以權(quán)威部門公布的內(nèi)容為準!

通信工程師備考資料免費領(lǐng)取

去領(lǐng)取

距離2025 通信工程師考試

還有
  • 3
  • 1
  • 2
專注在線職業(yè)教育23年

項目管理

信息系統(tǒng)項目管理師

廠商認證

信息系統(tǒng)項目管理師

信息系統(tǒng)項目管理師

!
咨詢在線老師!