Presentation is loading. Please wait.

Presentation is loading. Please wait.

MATLAB 程式設計入門篇 與Excel試算表的整合

Similar presentations


Presentation on theme: "MATLAB 程式設計入門篇 與Excel試算表的整合"— Presentation transcript:

1 MATLAB 程式設計入門篇 與Excel試算表的整合
張智星 清大資工系 多媒體檢索實驗室

2 12-1 與Excel試算表的整合 在本章中,將經常使用 test01.xls 來進行範例說明,此檔案位於本書的範例光碟,雙擊此檔案圖示後,可開啟此 Excel 檔案,畫面如下:

3 12-1 與Excel試算表的整合 xlsfinfo 指令來讀出一個 Excel 檔案的相關資訊及裡面的工作表(Sheets)名稱,指令格式如右:[fileType, sheets] = xlsfinfo(xlsFile) xlsFile 是 Excel 檔案名稱 傳回的變數:fileType 檔案類型 sheets 表單名稱 範例12-1:xlsflnfo01.m xlsFile='test01.xls'; [fileType, sheets] = xlsfinfo(xlsFile) fileType = Microsoft Excel Spreadsheet sheets = 'Sheet1' 'Sheet2' 'Sheet3' 'Position'

4 12-1 與Excel試算表的整合 讀出工作表內容,可以使用 xlsread 指令 範例12-2:xlread01.m
xlsFile = 'test01.xls'; [number, text, rawData] = xlsread(xlsFile) number = NaN NaN NaN text = '' '' 'C2' '' '' '' '' '' 'pi' '' 'yes' ''

5 12-1 與Excel試算表的整合 由於並未指定工作表名稱,所以 xlsread 會主動讀入第一個工作表的資料。
rawData = [ 1] [6.3000] [2.3000] [2.3000] [ 7] 'C2' [ 3] [8.3000] [4.7000] [4.7000] [ 9] 'pi' [ 5] 'yes' [3.8000] '' 由於並未指定工作表名稱,所以 xlsread 會主動讀入第一個工作表的資料。 xlsread 傳回的三個變數 Number:數值資料 Text:字串資料 rawData:所有的資料

6 12-1 與Excel試算表的整合 使用 xlsread 讀出某一個工作表中的一部份或全部的資料 範例12-3:xlread02.m
xlsFile = 'test01.xls'; B = xlsread(xlsFile, 'Sheet2') % 讀出 'Sheet2' 的全部資料 C = xlsread(xlsFile, 2, 'A2:B4') % 讀出第二個工作表位於 A3:B4 的資料 B = C =

7 12-1 與Excel試算表的整合 xlsread 指令能夠自行判斷格式並直接抓出數值資料及欄位字串 範例12-4:xlread03.m
numericData 包含第二列以後的數值資料,而 headerText 則包含第一列的欄位字串。 xlsFile = 'test01.xls'; [numericData, headerText] = xlsread(xlsFile, 'Position') numericData = headerText = 'Time (sec)' 'Position (m)'

8 提示 xlsread 也可以使用滑鼠來選取要讀取的工作表區域,預知詳情,可輸入「help xlsread」。

9 12-2 Excel檔案的寫入 將MATLAB 計算得到的資料寫入工作表所用到的指令是 xlswrite
範例12-5:xlwrite01.m xlsFile = 'output01.xls'; xlswrite(xlsFile, randn(5)); dos(['start ' xlsFile]);

10 12-2 Excel檔案的寫入 使用 xlswrite 寫入資料時,也可以指定工作表的名稱,或是指定寫入的資料儲存格
範例12-6:xlwrite02.m xlsFile = 'output02.xls'; sheetName='7x7魔方陣'; [status, message] = xlswrite(xlsFile, magic(7), sheetName) xlswrite(xlsFile, {'以上是7x7魔方陣'; date}, sheetName, 'B8:B9'); dos(['start ' xlsFile]); status = 1 message = message: '' identifier: ''

11 12-2 Excel檔案的寫入 將自由落體的資料(位置對時間)寫入一個 Excel 檔案 範例12-7:xlwrite03.m
xlsFile = 'output03.xls'; sheetName='位置對時間的變化'; data={'時間 (sec)', '位置 (m)'}; for i=1:5 data{i+1,1}=i; data{i+1,2}=0.5*9.8*i^2; end [status, message] = xlswrite(xlsFile, data, sheetName); dos(['start ' xlsFile]);

12 12-3 與Excel相關的其他功能 Excel Link 可讓使用者在 Excel 環境下呼叫 MATLAB,並直接使用 MATLAB各種分析與繪圖功能來對 Excel 資料進行處理 MATLAB 變成 Excel 增益集(Add-ins)的一個外加功能 使用者可以經由VBA或巨集來傳送資料並呼叫 MATLAB 的函數 大幅延伸了 Excel 的分析和繪圖能力

13 12-3 與Excel相關的其他功能 MATLAB Builder for Excel(或稱為 Excel Builder)是MATLAB 編譯器的延伸功能 它可以包裝 MATLAB 的函式,讓這些包裝後的函式分享給他人,便於使用者在沒有安裝 MATLAB 的電腦上,直接在 Excel 的環境下呼叫這些函式 MATLAB 和 Excel 的資料交換也可以經由「自動化伺服器」(Automation Server)的方式達成 將 Excel 看成是一個自動化伺服器的一項服務,就可以在 MATLAB 的環境下呼叫這個服務,以讀取或寫入 Excel 檔案的資料


Download ppt "MATLAB 程式設計入門篇 與Excel試算表的整合"

Similar presentations


Ads by Google