摘要:介紹了Excel Link插件和matlab中xlsread函數(shù)在excel 和matlab 間進(jìn)行數(shù)據(jù)通訊的實(shí)現(xiàn)方法,給出了具體的應(yīng)用實(shí)例。
關(guān)鍵詞:Excel Link;MATLAB;xlsread;數(shù)據(jù)通訊
中圖分類號:TP317文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2011)04-0821-02
Researching and Application of Implementation of Data Communication between Excel and Matlab
LIU Yun-xiang
(Guangzhou Baiyun Technician Institute, Guangzhou 510540, China)
Abstract: In this paper, Excel Link plug_in and xlsread function and theirs implementation of data communication between Excel and MATLAB are introduced.Application example is given.
Key words: Excel Link; MATLAB; xlsread; data commanication
1 Matlab和Excel簡介
Matlab是Mathworks公司推出的交互式計算軟件,它是國際上公認(rèn)的最優(yōu)秀的計算軟件。Matlab交互式計算軟件的特點(diǎn)是:強(qiáng)大的數(shù)值計算能力、強(qiáng)大的符號計算能力、強(qiáng)大而又靈活的編程能力、強(qiáng)大的圖形輸出能力、Matlab提供了非常豐富的函數(shù),使用戶可以很輕松地實(shí)現(xiàn)其他語言環(huán)境難以實(shí)現(xiàn)的復(fù)雜運(yùn)算。Matlab不僅能進(jìn)行復(fù)雜的數(shù)值計算、符號運(yùn)算,而且還可以把計算的結(jié)果以二維、三維的圖形方式表現(xiàn)出來,實(shí)現(xiàn)數(shù)據(jù)與函數(shù)的可視化操作。
Excel是Microsoft公司的電子表格軟件,它有著廣泛用戶群,主要應(yīng)用于統(tǒng)計、財務(wù)、管理等領(lǐng)域。怎樣把Matlab的強(qiáng)大的數(shù)值處理能力和強(qiáng)大的圖形輸出能力與Excel結(jié)合起來,實(shí)現(xiàn)兩者數(shù)據(jù)的通訊,使二者能協(xié)調(diào)地進(jìn)行工作,是本文討論的重點(diǎn)。
2 利用Excel Link 插件在Excel中建立Matlab的鏈接
在Windows 9.X(或Windows 2000/xp)操作系統(tǒng)中分別安裝Excel和Matlab后,就可按照下面的操作步驟建立兩者之間的鏈接:
1)運(yùn)行Microsoft Excel;
2)在Excel窗口中選擇“工具”菜單中的“加載宏”命令;
3)在彈出的“加載宏”對話框選擇Excel Link 2.3 for use matlab項(xiàng),單擊確定;
見圖1所示的對話框。
4)Excel窗口的“格式”工具欄下會出現(xiàn)一個新的工具欄“Excel Link”,該工具欄有四個按鈕,分別為startmatlab,putmatrix, getmatrix, evalstring。見圖2所示的Excel窗口。此時,Matlab命令窗口已經(jīng)打開,說明Excel鏈接Matlab成功。
Startmatlab,putmatrix, getmatrix, evalstring四個按鈕的功能分別為:startmatlab按鈕的作用是在excel中啟動matlab應(yīng)用程序;putmatrix按鈕的作用是把Excel中選中的數(shù)據(jù)傳送到Matlab中;getmatrix按鈕的作用是Excel從Matlab中獲取數(shù)據(jù);evalstring按鈕的作用是執(zhí)行Matlab的命令。利用這四個按鈕,就可以對Excel的數(shù)據(jù)傳送到Matlab,進(jìn)行處理,實(shí)現(xiàn)兩者數(shù)據(jù)的交互。連接Excel和MATLAB的數(shù)據(jù)管理函數(shù)共有七個,它們的作用是使Excel和MATLAB之間進(jìn)行數(shù)據(jù)交換及在Excel環(huán)境下執(zhí)行MATLAB命令。說明如表1:
表1
3 利用xlsreda函數(shù)實(shí)現(xiàn)在matlab中讀取excel表格中的數(shù)據(jù)
xlsread :這個函數(shù)用來讀取excel文件中的數(shù)據(jù)
語法格式:
num = xlsread('filename')
num = xlsread('filename', -1)
num = xlsread('filename', sheet)
num = xlsread('filename', 'range')
num = xlsread('filename', sheet, 'range')
說明:其中 num是函數(shù)的返回值,即在matlab中是矩陣變量;filename是excel文件名;sheet是excel工作簿中工作表名;range是區(qū)域范圍。
num = xlsread('filename') 函數(shù)是讀取filename文件的第一個工作表中的數(shù)據(jù)到maltab中,將其按照行列轉(zhuǎn)換成矩陣變量。
num = xlsread('filename', -1) 在excel窗口中打開filename文件,能夠讓你交互的選擇要讀取的工作表的要讀入的區(qū)域的數(shù)據(jù);
num = xlsread('filename', sheet) 讀取指定文件、指定工作表的數(shù)據(jù)到matlab中。
num = xlsread('filename', 'range') 讀取指定文件的第一個(默認(rèn)的)工作表中指定區(qū)域的數(shù)據(jù)到matlab中。指定區(qū)域用‘C1:C2’,其中C1:C2指的是C1單元到C2單元。
4 Excel 和 Matlab 數(shù)據(jù)通訊實(shí)例
該實(shí)例數(shù)據(jù)采用的是湖南師范大學(xué)醫(yī)學(xué)院《中醫(yī)肝臟辨證規(guī)范化的研究》國家自然科學(xué)基金資助項(xiàng)目總結(jié)報告中肝陽上亢證數(shù)據(jù)集數(shù)據(jù)。數(shù)據(jù)存放在excel文件中,數(shù)據(jù)中共有6個癥狀,95個記錄集。本論文中是利用excel和matlab兩個平臺的數(shù)據(jù)交互,并對肝陽上亢證各癥狀和等級進(jìn)行逐步多元回歸分析,輸出回歸分析圖形。
1)用excel link插件實(shí)現(xiàn)excel和matlab數(shù)據(jù)通訊
打開excel文件,在excel工作薄中輸入如下命令:
=MLPutMatrix(\"X\",C2:H96)
=MLPutMatrix(\"Y\",L2:L96
=MLEvalString(\"Stepwise(X,Y)\")
在Excel內(nèi)運(yùn)行MATLAB函數(shù)后產(chǎn)生的圖形如圖3。
2)采用xlsread函數(shù)實(shí)現(xiàn)在matlab中使用excel中數(shù)據(jù)。運(yùn)行matlab,在命令窗口中輸入如下代碼:(數(shù)據(jù)文件名為gysk,工作薄名為gysk)
x1=xlsread('gysk.xls','gysk','C2:C96');
x2=xlsread('gysk.xls','gysk','D2:D96');
x3=xlsread('gysk.xls','gysk','E2:E96');
x4=xlsread('gysk.xls','gysk','F2:F96');
x5=xlsread('gysk.xls','gysk','G2:G96');
x6=xlsread('gysk.xls','gysk','H2:H96');
X=[x1,x2,x3,x4,x5,x6];
Y=xlsread('gysk.xls','gysk','L2:L96')
stepwise(X,Y);
輸出結(jié)果如圖3。
5 小結(jié)
把Matlab的強(qiáng)大數(shù)值處理和圖形輸出功能擴(kuò)展到Excel之中,可高效地處理有關(guān)數(shù)據(jù),并以高質(zhì)量的圖形方式顯示這些數(shù)據(jù)。這一技術(shù)有著廣泛的應(yīng)用領(lǐng)域。在地學(xué)界,可用于遙感地質(zhì)、地理信息系統(tǒng)、工程地質(zhì)和水文地質(zhì)等。
參考文獻(xiàn):
[1] 李杰.在Excel中應(yīng)用MATLAB[J].計算機(jī)應(yīng)用,2000,20(11).
[2] 白新桂.數(shù)據(jù)分析與試驗(yàn)優(yōu)化設(shè)計[M].北京:清華大學(xué)出版社,1986.
[3] 上海師范大學(xué)數(shù)學(xué)系.回歸分析及其試驗(yàn)設(shè)計[M].上海:上海教育出版社,1978.
[4] 關(guān)治,陸金甫.數(shù)值分析基礎(chǔ)[M].北京:高等教育出版社,1998.
[5] 王沫然.MATLAB6.0與科學(xué)計算[M].北京:電子工業(yè)出版社,2001.
[6] 杜蘭,吳洪舉,陳建光.MATLAB與Excel在測量數(shù)據(jù)處理中的應(yīng)用[J].北京測繪,2002(3).
[7] 陳艷紅,付海鴻,趙媛媛,等.基于Matlab與Excel的實(shí)驗(yàn)數(shù)據(jù)自動處理[J].計算機(jī)工程,2007,33(23).