7.8 存取excell檔案資料
許多資料多以微軟的速算表excell儲存,故如何自速算表中取得資料相當重要。為此,MATLAB有如下之指令可以自速算表中擷取資料:
[N, T, rawdata] = xlsread('filename', sheet, 'range')
其中filename為檔案名稱,包括路徑及副檔名.xls;sheet為速算表之序號或名稱,若為名稱則必須使用字串型式,如'sheet1'是。range則為所要指定的範圍,如'A1:C3',必須為範圍的型式,大小寫均可。若不指定範圍,即表示輸入整個速算表。若sheet=-1,則有特別功能,亦即可以直接在速算表指定其範圍即可,但此時必須將速算表同時開啟才行。在輸出參數方面,N為數值陣列,T為字串陣列,而rawdata則為細胞陣列,包括所有資料。
下面舉一個例子。設一速算表之內容如下:
>> [N,A,rawdata]=xlsread('demo7.xls')
N =
12 NaN 60
14 NaN 105
16 NaN 56
18 NaN 48
20 NaN 50
A =
'頁數' '姓名' '年齡' '說明'
'' '馮丁樹' '' '本書的作者'
'' '張三豐' '' '太極拳祖爺'
'' '曹雪芹' '' '紅樓夢作者'
'' '高山青' '' '一首常唱的歌'
'' '文天祥' '' '作了正氣歌'
rawdata =
'頁數' '姓名' '年齡' '說明'
[ 12] '馮丁樹' [ 60] '本書的作者'
[ 14] '張三豐' [ 105] '太極拳祖爺'
[ 16] '曹雪芹' [ 56] '紅樓夢作者'
[ 18] '高山青' [ 48] '一首常唱的歌'
[ 20] '文天祥' [ 50] '作了正氣歌'
其中,N為數值矩陣,A為字串矩陣,而rawdata則為全部之資料,亦即細胞矩陣。
輸出至檔案之格式與參數也類似讀入之型式,其指令格式如下:
[status, message] = xlswrite('filename', M, sheet, 'range')
除上述之定義外,其中M為待輸出之矩陣,輸出檔案名稱可包含路徑。左邊有兩項資訊,若輸出成功,則status=1否則為0,message則會傳出錯誤的信息。其中有兩項,一為錯誤資訊的內容,另一為identifier,或為識別項。通常在寫入excell檔時,若原檔已有內容,則在進行存檔後會有如下之警告信息:
Warning: Added specified worksheet.
若不想這類信息一再出現,可以打入如下指令:
>>warning off MATLAB:xlswrite:AddSheet
如此,警告信息不會再出現,而後面MATLAB:xlswrite:AddSheet即為識別項idengifier。
例如:
>> books = {'書名', '價格(元)'; '模貝設計' 298; '模貝設計' 298; '基本電學' 580; '哈利波特' 660}
books =
'書名' '價格(元)'
'模貝設計' [ 298]
'模貝設計' [ 298]
'基本電學' [ 580]
'哈利波特' [ 660]
>> status=xlswrite('demo8.xls',books,'demo')
status = 1 %表示存檔成功
在excell之檔案內容如下:
2 則留言:
好cool唷!!
用matlab 讀excell 或存excell
那請問excell 內資料超過5位元比如說0.5123456789,matlab抓出來的資料只有0.5123,該怎麼辦呢謝謝!
張貼留言