MATLAB常用基本數(shù)據(jù)類型有:整型,浮點(diǎn)型,字符型,函數(shù)句柄,元胞數(shù)組和結(jié)構(gòu)體數(shù)組。除了這些基本數(shù)據(jù)類型,MATLAB還有很多其它的數(shù)據(jù)類型不為人熟悉,這些數(shù)據(jù)類型在編程中也非常有用。MATLAB高級(jí)數(shù)據(jù)類型系列旨在向大家介紹它們:比如containers.Map,tables,enumeration和time series等等,它們?yōu)槭裁从杏?,用來解決什么問題,并且怎樣在科學(xué)工程計(jì)算中怎么使用。上篇我們提到了映射表結(jié)構(gòu)(containers.Map)。本篇將介紹另一中新的MATLAB數(shù)據(jù)類型--table。
table簡介
為什么需要table數(shù)據(jù)結(jié)構(gòu)
MathWorks在MATLAB R2013b中引入了一種新的數(shù)據(jù)結(jié)構(gòu)叫做table。table類似統(tǒng)計(jì)工具箱中的dataset,其引入的目的就是用來取代dataset的數(shù)據(jù)類型。因?yàn)楸頎畹臄?shù)據(jù)在工程計(jì)算中越來越長久,有了table類型,MATLAB用戶就可以不用購買統(tǒng)計(jì)工具箱,也能使用表狀的數(shù)據(jù)結(jié)構(gòu)了。table本質(zhì)上來說是一種可以存放各種數(shù)據(jù)類型的容器,比如下面表Table.1中的數(shù)據(jù),其中既有字符型,又有數(shù)值類型,其中第一行作為表頭:Symbol,Name,Market,Cap,IPO, Year 是各列的名字。

Table.1 NASDAQ股票名稱表
在conatiners.Map的章節(jié)中,我們介紹了MATLAB的基本數(shù)據(jù)類型(比如數(shù)組,原胞數(shù)組和結(jié)構(gòu)體)在表達(dá)某些復(fù)雜數(shù)據(jù)類型時(shí)的局限性。這里不再一一贅述,讀者只需要認(rèn)識(shí)到:數(shù)組的局限性在于不能用來存放數(shù)值以外的數(shù)據(jù),而使用元胞讀取和索引內(nèi)容時(shí)有種種不方便,比如無法區(qū)分該數(shù)據(jù)中的表頭和其余的行數(shù)據(jù)。事實(shí)上,如果數(shù)據(jù)存放在如下的CSV文件中,并且用importdata直接讀取CSV文件。

顯然這不是我們所期待的要導(dǎo)入格式。
通過導(dǎo)入數(shù)據(jù)構(gòu)造table對(duì)象
沿用上一步的CVS文件,我們可以使用readtable函數(shù),構(gòu)造一個(gè)新的table對(duì)象,把csv文件中的數(shù)據(jù)導(dǎo)入到該對(duì)象中。readtable函數(shù)接受文件名稱作為輸入,返回一個(gè)table對(duì)象。

注意第2行的warning,因?yàn)閞eadtable函數(shù)把nasdaq.csv中的第一行自動(dòng)變成了這個(gè)table的表頭,在創(chuàng)建table對(duì)象的時(shí)候,MATLAB會(huì)對(duì)做表頭的文字做處理,這里把Market Cap和IPO Year兩個(gè)詞中的空格去掉,縮成一個(gè)詞,這樣做是為了方便將來使用dot語法來訪問表中的數(shù)據(jù)。因?yàn)镸ATLAB修改了原來的表頭,所以這里給出了warning。
調(diào)用table構(gòu)造函數(shù)來構(gòu)造table對(duì)象
通過轉(zhuǎn)換函數(shù)構(gòu)造table對(duì)象
訪問table中的數(shù)據(jù)
-
數(shù)據(jù)類型
+關(guān)注
關(guān)注
0文章
237瀏覽量
14194 -
結(jié)構(gòu)體
+關(guān)注
關(guān)注
1文章
131瀏覽量
11376
發(fā)布評(píng)論請(qǐng)先 登錄
【產(chǎn)品介紹】Altair OptiStruct結(jié)構(gòu)分析優(yōu)化軟件
關(guān)于MATLAB table數(shù)據(jù)結(jié)構(gòu)的分析介紹
評(píng)論