MATLAB常用基本數據類型有:整型,浮點型,字符型,函數句柄,元胞數組和結構體數組。除了這些基本數據類型,MATLAB還有很多其它的數據類型不為人熟悉,這些數據類型在編程中也非常有用。MATLAB高級數據類型系列旨在向大家介紹它們:比如containers.Map,tables,enumeration和time series等等,它們?yōu)槭裁从杏?,用來解決什么問題,并且怎樣在科學工程計算中怎么使用。上篇我們提到了映射表結構(containers.Map)。本篇將介紹另一中新的MATLAB數據類型--table。
table簡介
為什么需要table數據結構
MathWorks在MATLAB R2013b中引入了一種新的數據結構叫做table。table類似統(tǒng)計工具箱中的dataset,其引入的目的就是用來取代dataset的數據類型。因為表狀的數據在工程計算中越來越長久,有了table類型,MATLAB用戶就可以不用購買統(tǒng)計工具箱,也能使用表狀的數據結構了。table本質上來說是一種可以存放各種數據類型的容器,比如下面表Table.1中的數據,其中既有字符型,又有數值類型,其中第一行作為表頭:Symbol,Name,Market,Cap,IPO, Year 是各列的名字。
Table.1 NASDAQ股票名稱表
在conatiners.Map的章節(jié)中,我們介紹了MATLAB的基本數據類型(比如數組,原胞數組和結構體)在表達某些復雜數據類型時的局限性。這里不再一一贅述,讀者只需要認識到:數組的局限性在于不能用來存放數值以外的數據,而使用元胞讀取和索引內容時有種種不方便,比如無法區(qū)分該數據中的表頭和其余的行數據。事實上,如果數據存放在如下的CSV文件中,并且用importdata直接讀取CSV文件。
顯然這不是我們所期待的要導入格式。
通過導入數據構造table對象
沿用上一步的CVS文件,我們可以使用readtable函數,構造一個新的table對象,把csv文件中的數據導入到該對象中。readtable函數接受文件名稱作為輸入,返回一個table對象。
注意第2行的warning,因為readtable函數把nasdaq.csv中的第一行自動變成了這個table的表頭,在創(chuàng)建table對象的時候,MATLAB會對做表頭的文字做處理,這里把Market Cap和IPO Year兩個詞中的空格去掉,縮成一個詞,這樣做是為了方便將來使用dot語法來訪問表中的數據。因為MATLAB修改了原來的表頭,所以這里給出了warning。
調用table構造函數來構造table對象
通過轉換函數構造table對象
訪問table中的數據
-
數據類型
+關注
關注
0文章
236瀏覽量
13624 -
結構體
+關注
關注
1文章
130瀏覽量
10844
發(fā)布評論請先 登錄
相關推薦
評論