前言:office的表格文件也就是xls文件,本質上就是一個二維矩陣,二維矩陣是用來保存數據的最佳方式,所以在日常工作中,我們從其它地方獲取的數據通常都被保存爲xls格式,但處理數據時,我們卻需要把xls文件的數據導入到matlab裏進行處理。 如果你只處理一個文件並且只做一次的話,你可以手動來拷貝粘貼,這花費不了你太多時間。如果有很多xls文件,或者你的xls文件的內容可能隨時被修改,那麼下面的方法可以派上用場。 matlab自身提供了大量的函數,包括讀取office文件。其中xlsread和xlswrite就是專門用來讀取xls文件裏的數據的。這兩個函數的使用方法可以直接查看matlab自帶的幫助。 xlsread對於純數據的xls文件支持很完美,也就是說當xls文件裏的每個格子都是“數”時,xlsread會直接返回一個實數矩陣。但是通 常我們拿到xls文件並不是這樣,它的表頭多半是描述性文字,它的數據也有可能是文字,有些位置的數據還有可能是缺失的。xlsread對這樣的文件讀取 無能爲力,或者說需要大量的時間去協調數據的位置信息。要是有一個函數,能夠按照原有的順序直接讀取所有的單位格數據就好了。當然,這時候返回的矩陣就不 能是一個數值矩陣了,它將會是一個cell矩陣,裏面的每個元素類型可能不一樣。 matlab本身並不提供這個功能,但是另外有一個函數officedoc完美的實現這個功能。這個函數包可以去OfficeDoc官方網站上去下載,解壓縮後放到工作路徑上即可。使用方法可以查詢help officedoc。officedoc是收費函數包,但有免費版本,而且其免費版本可以實現上面我們所說的效果(收費版本主要是可以用來修改office文件)。
在matlab中讀取xls格式的文件內容如應用如下函數:
我們通過幾種導入方法進行導入:
- 普通導入:
方法:
data=xlsread(filepath) %其中filepath表示要導入文件的路徑加文件名,要用單引號引起來
實例:
data=xlsread('I:\Test\a.xlsx')
打開工作區查看:
可以看到數據已經導入成功;但是這種方法導入原始,不能識別中文,不能選擇感興趣的數據區域和sheet;
2. 選擇特定sheet導入:
方法:
data=xlsread(filepath,sheetN) %N代表選擇的sheet,比如sheet1即可寫1;
實例:
data=xlsread('I:\Test\a.xlsx',2)
導入結果:
3. 自己選擇數據(靈活):
方法:
data=xlsread(filepath,-1)
實例:
data=xlsread('I:\Test\a.xlsx',-1)
運行代碼後顯示:
截取兩行數據如下:
點擊確定;
查看工作區:
非常的靈活易用,有木有啊有木有?
4. 導入代碼指定數據域
方法:
data=xlsread(filepath,'A0:B1')
實例:
data=xlsread('I:\Test\a.xlsx', 'B6:KO7')
截取a中B6:KO7共計2行300列的數據,顯示如下:
是不是比方法4更靈活?
5. 批量導入(文件較多的時候)
方法:
for i=1:100
filename=[filepath,num2str(i),'.xls'];
data=xlsread(filename)
end
當然以上方法同樣可以靈活組合.。
比如:
data = xlsread(filename,sheetN, 'range') %表示選取sheetN中某個數據區域的數據進行導入分析;