matlab如何创建table,MATLAB table数据结构 首篇
>第2.5節,構造函數和類的名稱相同)。在containers.Map的介紹中,我們舉了電話號碼簿的例子,如表Table.3所示,它是我們這節要構造的table對象的原始數據
Table.3 電話號碼簿姓名
電話號碼
Abby
5086470001
Bob
5086470002
Charlie
5086470003
下面程序中第1,2行用元胞數組來表示表中每一列的數據,第3行規定了表頭的名稱,第4行調用table的構造函數創建table對象,先輸入數據,再輸入表頭的名稱。表頭通過table對象的VariableNames屬性來設置。
name={'Abby';'Bob';'Charlie'}; % 3x1列向量
number={'5086470001';'5086470002';'5086470003'}; % 3x1列向量
colName={'Name','Number'};
phonetable=table(name,number,'VariableNames',colName)
命令行顯示如下
% phonetable在命令行中disp的結果
phonetable =
Name Number
_________ ____________
'Abby' '5086470001'
'Bob' '5086470002'
'Charlie' '5086470003'
第4行把Name和Number做為table對象的VariableNames,可以這樣理解VariableNames,我們可以把table看成由一個個列數據組成的數據結構,每列都是矢量,其中存放相同類型的數據。如果一個table有兩列,它就有兩個列矢量,每個列矢量都是table的一個變量(Variable),給變量名字就是Variable Name。
通過轉換函數構造table對象
除了使用table的構造函數來創建table對象,還可以使用轉換函數把其它數據類型轉成table,下列通過數組數據類型類構造table。下面的程序的1-2行,我們利用financial工具箱中的fetch函數,從Yahoo財經處得到雅虎從3月1日到3月10日的股票價格,fetch函數將返回一個數組,第3行我們利用array2table轉換函數把得到數組轉成table。
% 通過array2table創建table對象
conn = yahoo;
array = fetch(conn,'YHOO','3/1/2015','3/10/2015');
yhoo = array2table(array,...
'VariableNames', {'date','open','high','low','closing','volumn','adjusted'})
第4行中,我們通過VariableName來指定表頭的內容,結果顯示如下
% yhoo的table在命令行的顯示
yhoo =
date open high low closing volumn adjusted
__________ _____ _____ _____ _______ __________ ________
7.3603e+05 42.57 42.92 42.18 42.68 1.0601e+07 42.68
7.3603e+05 43.6 43.93 42.67 42.98 1.1802e+07 42.98
7.3603e+05 43.98 44.24 43.4 43.44 1.1888e+07 43.44
7.3603e+05 44.18 44.31 43.5 44.16 1.1868e+07 44.16
7.3603e+05 42.08 44.38 41.97 43.99 3.0099e+07 43.99
7.3603e+05 43.7 43.95 42.42 42.62 2.2392e+07 42.62
7.3603e+05 44.06 44.43 43.7 44.11 1.1027e+07 44.11
訪問table中的數據
通過表Table.1所建立的table對象,在命令行中顯示如下:
% nasdaq table在命令行中的顯示
nasdaq =
Symbol Name MarketCap IPOYear
______ _______________________ __________ _______
'AAPL' 'Apple Inc' '$742.63B' 1980
'AMZN' 'Amazon.com Inc' '$173.33B' 1997
'MSFT' 'Microsoft Corporation' '$346.9B' 1986
我們可以通過使用dot+Variablename的語法直接訪問table中的列,返回的結果是cell格式的數據:
% 使用dot語法訪問table中的數據
>> nasdaq.Symbol % dot格式+變量名的訪問方式
ans =
'AAPL'
'AMZN'
'MSFT'
>> class(nasdaq) % 返回cell格式的數據
ans =
cell
table類重載了subsref函數(什么是運算符的重載,參加《MATLAB面向對象編程-從入門到設計模式》12.1節),于是支持MATLAB傳統的圓括號下標訪問,如果要訪問第一行,則:
% 使用下標語法訪問table中的數據
>> nasdaq(1,:)
ans =
Symbol Name MarketCap IPOYear
______ ___________ __________ _______
'AAPL' 'Apple Inc' '$742.63B' 1980
使用圓括號,返回的結果仍然是table,如果要訪問第2到3行,則:
% 使用下標語法訪問table中的數據
>> nasdaq(2:3,:)
ans =
Symbol Name MarketCap IPOYear
______ _______________________ __________ _______
'AMZN' 'Amazon.com Inc' '$173.33B' 1997
'MSFT' 'Microsoft Corporation' '$346.9B' 1986
返回的結果仍然是table。
table數據結構支持MATLAB傳統的花括號下標訪問,返回的結果是cell格式的數據
% 花括號下標訪問
>> nasdaq{:,1} % 花括號下標訪問,返回第一列中的數據
ans =
'AAPL'
'AMZN'
'MSFT'
還可以把Dot語法和下標語法結合起來獲取數據,下例代碼訪問table第一列的第三行,返回的結果是元胞。
% Dot語法和圓括號下標訪問結合
>> nasdaq.Symbol(3)
ans =
'MSFT'
>> class(ans) % 圓括號下標訪問,返回結果是元胞
ans =
cell
圖Figure.1中以表Table.1中的數據為例,總結了幾種訪問table中不同區域的數據的方法。
Figure.1 訪問table中的數據
關于作者
oopmatlab,計算物理博士,計算機碩士,聲明:
本文內容所有內容僅代表個人觀點,如有任何問題,請聯系作者。
本版塊所有文章版權歸作者個人所有,未經允許,不得作為出版物出版。如需轉載,請聯系論壇管理員。
總結
以上是生活随笔為你收集整理的matlab如何创建table,MATLAB table数据结构 首篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java怎么播放不了声音,怎么在java
- 下一篇: php单词出现频率,PHP计算文件或数组