table-matlab-中table数据类型-创建-调用-访问
- 格式:docx
- 大小:136.50 KB
- 文档页数:10
table-matlab-中table数据类型-创建-调用-访问
MATLAB table数据结构
目录:
•关于作者
•table简介
o为什么需要table数据结构
o通过导入数据构造table对象
o调用table构造函数来构造table对象
o通过转换函数构造table对象
•访问table中的数据
MATLAB常用基本数据类型有:整型,浮点型,字符型,函数句柄,元胞数组和结构体数组。除了这些基本数据类型,MATLAB还有很多其它的数据类型不为人熟悉,这些数据类型在编程中也非常有用。MATLAB高级数据类型系列旨在向大家介绍它们:比如containers.Map, tables,enumeration和time series等等,它们为什么有用,用来解决什么问题,并且怎样在科学工程计算中怎么使用。上篇我们提到了映射表结构(containers.Map )。本篇将介绍另一中新的MATLAB数据类型--table。
table简介
为什么需要table数据结构
MathWorks在MATLAB R2013b中引入了一种新的数据结构叫做table。table类似统计工具箱中的dataset,其引入的目的就是用来取代dataset的数据类型。因为表状的数据在工程计算中越来越长久,有了table类型,MATLAB用户就可以不用购买统计工具箱,也能使用表状的数据结构了。table本质上来说是一种可以存放各种数据类型的容器,比如下面表Table.1中的数据,其中既有
字符型,又有数值类型,其中第一行作为表头:Symbol,Name,Market,Cap,IPO, Year是各列的名字。
Table.1
NASDAQ股票名称表
Symbol Name
Market
Cap
IPO
Year
AAPL Apple Inc$742.63B1980
AMZN ,
Inc
$173.33B1997
MSFT Microsoft
Corporation
$346.9B1986
在conatiners.Map的章节中,我们介绍了MATLAB的基本数据类型(比如数组,原胞数组和结构体)在表达某些复杂数据类型时的局限性。这里不再一一赘述,读者只需要认识到:数组的局限性在于不能用来存放数值以外的数据,而使用元胞读取和索引内容时有种种不方便,比如无法区分该数据中的表头和其余的行数据。事实上,如果数据存放在如下的CSV文件中,并且用importdata 直接读取表Table.2中的CSV文件。
"Symbol","Name","Market Cap","IPO Year"
"AAPL","Apple Inc","$742.63B",1980
"AMZN"," Inc","$173.33B",1997
"MSFT","Microsoft Corporation","$346.9B",1986
Table.2 Nasdaq 的 csv 原始数据
读入之后数据将会被分成数值和非数值部分:
1.% 用importdata直接读入CSV文件
2.>> nasdaq = importdata('nasdaq.csv')
3.nasdaq = % 结果存在struct中
4. data: [3x1 double]
5. textdata: {4x4 cell}
6.>> nasdaq.data % csv中的数值部分
7.ans =
8. 1980
9. 1997
10. 1986
11.>> nasdaq.textdata % csv中的字符部分
12.ans =
13. '"Symbol"' '"Name"' '"Market Cap"'
'"IPO Year"'
14. 'AAPL' 'Apple Inc' '$742.63B'
''
15. 'AMZN' ' Inc' '$173.33B'
''
16. 'MSFT' 'Microsoft Corporation' '$346.9B'
''
显然这不是我们所期待的要导入格式。
通过导入数据构造table对象
沿用表Table.2中nasdaq.csv文件,我们可以使用readtable函数,构造一个新的table对象,把csv文件中的数据导入到该对象中。readtable函数接受文件名称作为输入,返回一个table对象。
1.% 通过readtable函数来构造table对象
2.>> nasdaq = readtable('nasdaq.csv')
3.Warning: Variable names were modified to make them valid MATLAB
identifiers.
4.nasdaq =
5. Symbol Name MarketCap
IPOYear
6. ______ _______________________ __________
_______
7. 'AAPL' 'Apple Inc' '$742.63B' 1980
8. 'AMZN' ' Inc' '$173.33B' 1997
9. 'MSFT' 'Microsoft Corporation' '$346.9B' 1986 注意第2行的warning,因为readtable函数把