近期忙於準備9月14日至9月17日的高教社杯數學建模競賽,由於本人主要負責建模和演算法工作,因此每天抽出一定時間和精力放到matlab上。不過今天並不順利,僅僅在乙個excel**的讀取上就犯了難,字元型和數值型完全矇圈,還好,最終攻克了這個小難題,本文也算是分享我對xlsread函式的一點心得。
1.只含數值型變數的excel**
這個兩種方法:貼上或xlsread函式呼叫。貼上不必多說,至於xlsread,我們利用如下格式:
num=xlsread('filename','sheet','range')
式中括號內的三項都要加單引號,filename顧名思義,就是要匯入的excel的檔名,注意加.xls或.xlsx就好,第二個sheet就是**頁名,第三個range是指要匯入資料的範圍,這個對excel不熟練的話建議用matlab開啟excel**,直接用滑鼠選中要匯入的資料,然後**裡會自動出現選中資料的範圍(這個的確好用),寫入range即可。
2.同時含數值型變數和字元型變數的excel**
這個稍有些麻煩。
首先,如果僅僅是需要處理其中資料,那麼方法同1。如果既要處理資料又要處理字元型變數的話,就經常用到下面兩種格式:
[num,txt]=xlsread('filename','sheet','range')
其中,num是數值型變數且為矩陣,txt是字元型變數且為細胞陣列,raw既含數值型變數又含字元型變數,當然,raw是細胞陣列。舉個例子,[num,txt,raw]=xlsread('filename','sheet','range')
日期銷量
2015/2/28
2.6182e+03
2015/2/27
2.6084e+03
2015/2/26
2.6519e+03
2015/2/25
3.4421e+03
2015/2/24
3.3931e+03
2015/2/23
3.1366e+03
2015/2/22
3.7441e+03
這是乙個名為ex1.xlsx的excel**的全部內容,現在我們讀取它的每一部分
[num,txt,raw]=xlsread('ex1.xlsx')
輸出結果如下
num=
2.6182e+03
2.6084e+03
2.6519e+03
3.4421e+03
3.3931e+03
3.1366e+03
3.7441e+03
txt=
日期
銷量 2015/2/28
2015/2/27
2015/2/26
2015/2/25
2015/2/24
2015/2/23
2015/2/22
raw=
日期銷量
2015/2/28
2.6182e+03
2015/2/27
2.6084e+03
2015/2/26
2.6519e+03
2015/2/25
3.4421e+03
2015/2/24
3.3931e+03
2015/2/23
3.1366e+03
注:txt和raw輸出的每乙個細胞單元都帶單引號。
一般我們進行的資料分析都是同時對數值和字元進行處理的,本人建議利用num作資料預處理,然後用經過缺失和異常資料插補的raw來生成新的excel**,再利用新的excel**作下一步的工作即可。
祝願大家玩熟xlsread,千萬別像我一樣卡在excel資料讀取上了,嘻嘻。
資料讀取入門 xlsread
原 2017年08月31日 17 41 41 ai mathworker 近期忙於準備9月14日至9月17日的高教社杯數學建模競賽,由於本人主要負責建模和演算法工作,因此每天抽出一定時間和精力放到matlab上。不過今天並不順利,僅僅在乙個excel 的讀取上就犯了難,字元型和數值型完全矇圈,還好,...
中讀取資料 讀取資料
對資料庫有一定了解的同學應該都知道資料表這個東西。資料表一般是以行列來儲存和展示資料的。每一列就是乙個資料字段,代表每一行資料的屬性。在python裡面也有類似表概念的東西,叫做dataframe。dataframe是我們資料分析和風控建模中很重要乙個元素,後續的很多資料操作都要以此為基礎。我們的資...
XML 入門 讀取檔案
jar包 dom4j 建立解析器 saxreader reader new saxreader 通過解析器的read方法將配置檔案讀取到記憶體中,生成乙個document org.dom4j 物件樹 document document null try catch documentexception...