MATLAB 與 Excel 接口


MATLAB Excel 接口
MATLAB Excel 有兩種接口方式:一種是通過 MATLAB 提供的 Excel 生成器,生成
220 MATLAB 實用教程
DLL 組件和 VBA 代碼,實現 Excel MATLAB 的調用;另一種是利用 MATLAB 提供的 Excel
link 插件,直接在 Excel 環境下運行 MATLAB 命令,完成與 MATLAB 的數據傳輸。下面介
紹的是第二種接口方式——Excel link
Excel Link Microsoft Windows 環境下實現 MATLAB Microsoft Excel 進行鏈接的插
件。通過 MATLAB Excel 鏈接,用戶可以在 Excel 工作環境中利用宏工具及 MATLAB
據處理和圖形處理功能進行相關操作,由 Excel link 進行 MATLAB Excel 工作環境中的數
據交換和同步更新。使用 Excel link 時,不必脫離 Excel 環境,可直接在 Excel 工作區或宏操
作中調用 MATLAB 函數。
11.2.1 Excel link 的安裝和操作
1.系統需求
Excel link 需要的操作系統是 Microsoft Windows XPMicrosoft Windows NT Microsoft
Windows 2000,另外還需要 5.1 以上版本的 MATLAB Excel 98Excel 2000 Excel 2002
2Excel 中注冊 Excel link
系統需要在 Windows 環境下先安裝 Excel,然后再安裝 MATLAB Excel link。安裝 Excel
link,在 MATLAB 安裝組件選擇框中選中 Excel link 即可,安裝完畢后必須在 Excel 中進行
相應設置,具體操作過程如下。
Þ 啟動Excel
Þ 在【工具】菜單中選擇【加載宏】選項,打開【加載宏】對話框,單擊【瀏覽】。
Þ 在彈出的路徑選擇對話框中,選擇“<matlabroot>\toolbox\exlink”下的Excel插件
excllink.xla”,單擊【確定】按鈕。
Þ 返回【加載宏】對話框,單擊【確定】按鈕,彈出MATLAB運行窗口。
Þ 稍后,Excel Link工具條在Excel工作窗口左上角出現。工具條包括 “startmatlab”,
putmatrix”,“getmatrix”和“evalstring4 個工具按鈕(見圖 11-2),分別為啟動
MATLAB、將數據傳給MATLAB、從MATLAB提取數據和執行MATLAB命令。

 


11-2 Excel Link 工具條
3.啟動 Excel Link
啟動 Excel Link 分自動啟動和手動啟動兩種方式。
1)自動啟動
安裝和注冊 Excel Link 之后啟動 Excel 時,將自動啟動 MATLAB Excel Link
如果用戶不想在打開 Excel 時同時啟動 MATLAB Excel Link,可在 Excel 數據表單元
11 章 編譯器與外部接口 221
格中輸入=MLAutoStart“no”)”后按 Enter 鍵,如圖 11-3 所示,此函數將更改初始化文件,
再次啟動該文件時 MATLAB Excel Link 不再自動啟動。

 


11-3 A1 單元中輸入“=MLAutoStart("no")
2)手動啟動
Þ 單擊【工具】菜單,選擇【宏】。
Þ 在彈出 【宏】對話框的【宏名】文本框中輸入“matlabinit”,單擊【執行】按鈕即可。
4.終止 Excel Link
終止 Excel 時,Excel Link MATLAB 將同時終止。要在 Excel 中終止 MATLAB Excel
Link 的運行,可在 Excel 數據表單元格中輸入“=MLClose()”並按 Enter 鍵。重新啟動時,
可在 Excel 數據表單元格中輸入“=MLOpen()”后按 Enter 鍵或在【宏名】文本框中輸入
matlabinit”手動啟動。
11.2.2 Excel link 的函數
Excel Link 提供了一系列管理鏈接、操作數據的函數,可在 Excel 環境中通過宏或工作表
單元公式調用這些函數,實現 Excel Link MATLAB 的數據交換與同步更新。
1.鏈接管理函數
Excel Link 提供了四個鏈接管理函數來初始化、啟動、終止 Excel Link MATLAB
Matlabinit:初始化 Excel Link 並啟動 MATLAB 進程。
MLAutoStart:自動啟動 MATLAB 進程。
MLClose:終止 MATLAB 進程。
MLOpen:啟動 MATLAB 進程。
可在 Excel 的【工具】菜單中單擊【宏】選項或在宏過程中調用 matlabinit 函數,其他鏈
接管理函數可用宏或工作表單元公式進行調用。
2.數據管理函數
Excel Link 提供了 9 個數據管理函數在 Excel MATLAB 之間復制數據、在 Excel 中運
MATLAB 命令。
Matlabfcn:對給定 Excel 數據運行 MATLAB 命令。
Matlabsub:對給定 Excel 數據運行 MATLAB 命令並指定輸出位置。
MLAppendMatrix:將 Excel 工作表中數據創建或添加到 MATLAB 矩陣。
MLDeleteMatrix:刪除 MATLAB 矩陣。
222 MATLAB 實用教程
MLEvalString:運行 MATLAB 命令。
MLGetMatrix:將 MATLAB 矩陣內容寫到 Excel 工作表中。
MLGetVar:將 MATLAB 矩陣內容寫到 Excel VBA 變量中。
MLPutMatrix:用 Excel 工作表中數據創建或覆蓋 MATLAB 矩陣。
MLPutVar:用 Excel VBA 變量數據創建或覆蓋 MATLAB 矩陣。
MLGetVar MLPutVar 只能在宏中調用,其他函數可通過宏或工作表單元公式調用。
3Excel link 實例
下面通過工作表對一組數據進行曲線擬合,說明 Excel link 的使用方法。
創建 Excel_example.xls 文件,如圖 11-4 所示,DATA 下的第一列、第二列分別為數值 X
Y

 


11-4 創建 Excel_example.xls 文件
選擇單元 E4,按 F2 鍵,回車執行 Excel link 函數 MLPutMatrix("x",A4:A15),它將 A4:A15
發送到 MATLAB 並給變量數組 x 賦值。對 E5 進行類似操作,將框中第二列數據賦值給 y
E9E10 執行類似操作,依次執行下列語句:
MLEvalString("p=polyfit(x',y',3)")
MLEvalString("newfit = polyval(p,x)")
這兩條語句是MATLAB中執行雙引號中命令,對數據點用y=ax3+bx2+cx+d進行曲線擬合。
E11 中執行命令:
MLEvalString("a=p(1);b=p(2);c=p(3);d=p(4)")
該語句是 MATLAB 中將擬合系數分別給 abcd 賦值。
E14E15E16E17 中分別執行命令:
MLGetMatrix("a","E21")
MLGetMatrix("b","F21")
MLGetMatrix("c","G21")
MLGetMatrix("d","H21")
11 章 編譯器與外部接口 223
4 條語句分別是 MATLAB 中將 abcd 傳給 Excel 中單元格 E21F21G21H21
E18 中執行命令:
MLEvalString("plot(x,newfit,'-' ,x,y,'o')")
該語句利用 MATLAB 繪圖函數顯示原始數據和擬合曲線,結果如圖 11-5 所示。

 


11-5 Excel Link 的運算結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM