前言

上一次的训练中一道数据处理的题目,五千来号数据,作为matlab新手这怎么搞,后面发现可以导入,但是问题来了,我根本提取不出那些数据啊(苦恼)。后面发现这些数据从excel导入进去后是table类型的,然后去找了相关资料,终于有点会使了,于是记录整理一下,下次忘了还可以再看看,嘻嘻~

table简介

MATLAB引入了这个新的数据类型,为的就是更好的用来做统计,就可以理解成一个表(类似统计 工具箱中的dataset),可以存放各种类型的容器。第一行就作为表头,如果取的表头符合matlab的命名规则,那么该列直接如此命名。

数据导入

1.通过导入数据构造table对象

我们可以使用readtable 函数,构造一个新的table对象,把csv文件中的数据导入到该对象中。readtable函数接受文件名称作为输入,返回一个table对象。

% 通过readtable函数来构造table对象
>> nasdaq = readtable('xxxx.csv')
Warning: Variable names were modified to make them valid MATLAB identifiers.
nasdaq =                                                                Symbol             Name              MarketCap     IPOYear______    _______________________    __________    _______'AAPL'    'Apple Inc'                '$742.63B'    1980   'AMZN'    'Amazon.com Inc'           '$173.33B'    1997   'MSFT'    'Microsoft Corporation'    '$346.9B'     1986

ps:warning 的原因是该列表把第一行作为了表头,缩了空格,修改了表头

调用table构造函数来构造table对象

我们还可以通过直接调用table类的构造函数来创建table对象。
上栗子

下面程序中第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)

通过转换函数构造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'})

访问table中的数据

理解这个的最好方式就是栗子:

通过表Table.1所建立的table对象,在命令行中显示如下:
(以访问这个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

1.我们可以通过使用dot+Variablename的语法直接访问table中的列,返回的结果是cell格式的数据:

% 使用dot语法访问table中的数据
>> nasdaq.Symbol           % dot格式+变量名的访问方式
ans = 'AAPL''AMZN''MSFT'
>> class(nasdaq)           % 返回cell格式的数据
ans =
cell
%table类重载了subsref函数,于是支持MATLAB传统的圆括号下标访问,如果要访问第一行,则:
% 使用下标语法访问table中的数据
>> nasdaq(1,:)
ans = Symbol       Name        MarketCap     IPOYear______    ___________    __________    _______'AAPL'    'Apple Inc'    '$742.63B'    1980

2.使用圆括号,返回的结果仍然是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。
3.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中的数据

参考网址:https://www.ilovematlab.cn/article-52-1.html

【MATLAB】关于matlab的table数据使用相关推荐

  1. 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法

    关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...

  2. matlab cell转double_MATLAB处理数据,掌握这7个小技巧就够了

    最近一段时间,工作上花了不少时间用MATLAB处理工厂下线的数据,数据庞大不说,复杂度也高,各种推算和统计 所以今天我打算总结一下,平时我在用MATLAB做数据分析时常用的几个小技巧 正好全国大学生数 ...

  3. matlab用socket线程发送数据,使用Python Twisted和Autobahn从Matlab通过WebSocket发送JSON数据...

    我正在尝试创建一个从Matlab到WebSocket流JSON帧的连接.我用下面的代码测试了我的python安装和twisted.在 工作实例 Matlab代码 示例驱动程序代码,它使用JSONlab ...

  4. MATLAB快速拟合二组数据

    MATLAB快速拟合二组数据 第一步:打开MATLAB,点击主页中的新建变量,点击修改变量名为a,然后复制数据进去,接着新建变量b,复制数据进去. 第二步:点击上端的APP,选择第一个图标 第三步:选 ...

  5. 美赛整理之Matlab读取全球海洋温度数据并显示干货

    Matlab读取全球海洋温度数据并显示干货 Matlab读取全球海洋温度数据并显示干货 Matlab读取全球海洋温度数据并显示干货 一.nc文件的读取 二.画出从1981到2000年的全球温度海洋变化 ...

  6. matlab数据变成一列数据,matlab读取excel表格列数据-matlab导入excel后,怎么把数据提取成一列?...

    怎么用matlab读取excel表格中的一列十六进制数据? x=xlsread('oillack.xls','sheet1','a1:a73') excel文件名是oillack.xls,sheet1 ...

  7. rls算法matlab实现,第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现.PDF

    第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现 第 5章 基于 RLS算法的数据预测与 第5章 基于RLS算法的数据预测与MATLAB实现 MATLAB实现 RLS 1795 递归最 ...

  8. matlab 矩阵与数比较,MATLAB 对矩阵中的数据进行大小比较

    用matlab对矩阵进行高斯消元 %求解例题2.1%高斯法求解线性方程组Ax=b%A为输入矩阵系数,b为方程组右端系数%方程组的解保存在x变量中%先输入方程系数A=[1 2 3;2 7 5;1& ...

  9. matlab导入表格画图,matlab从excel表格导入数据画图-在matlab上如何导入excel表格然后画图...

    如何将excel表格中大量数据导入matlab中并作图 1.matlab,点击主页下面的数据导入,你可以导入excel数据,这里导自己的huitushuju文件. 2.单击"打开" ...

  10. matlab批量导入excel表格数据,matlab导入excel表格数据-如何用matlab读取多个excel表格数据,将每个表格数......

    如何用matlab读取多个excel表格数据,将每个表格数... 一xlsread()函数,比import简单的多,具体语句:A = xlsread('yourfilename.xls')望高手支招! ...

最新文章

  1. java对象--内部类
  2. k8s, etcd 多节点集群部署问题排查记录
  3. hadoop学习-mahout-Bayes分类算法示例程序
  4. 恕我直言,IDEA的Debug,你可能只用了10%
  5. html 星空效果,使用css实现星空效果!
  6. Jmeter===Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍(转)
  7. 20155337 《网络对抗》 Exp2 后门原理与实践
  8. 关于GPU数据库的未来
  9. 【智慧工厂】一篇让你搞明白ERP、SAP、MES的文章
  10. PPT插入文本框的方法技巧
  11. android 转发朋友圈,微信怎么转发朋友圈 转发朋友圈方法详细教程
  12. BZOJ 2339 【HNOI2011】 卡农
  13. windows系统PrintScreen键截屏
  14. Django-rq任务失败自动重试
  15. 否则在Python中使用for / while语句
  16. 机器学习作业(第十八次课堂作业)
  17. 网站建设制作需要多少钱呢?费用是多少?
  18. 手机拍摄证件照可以用什么软件
  19. 蓝桥杯JAVA-32.二维数组(矩阵)实现旋转模板(JAVA实现)
  20. 阿里云视频点播服务(上传,删除,获取播放地址,获取播放凭证)

热门文章

  1. javascript实用例子
  2. 编程过程中常见的内存开辟和释放问题
  3. 铷标准的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. 引领半开放主动降噪新技术,华为全新无线蓝牙耳机FreeBuds 4发布
  5. 【MATLAB编程】求斐波那契数列的第n项与前n项和
  6. python提取txt关键内容_python爬取关键字所在行并输出到txt
  7. flink Could not forward element to next operator
  8. 2022衢州江山农商银行春季招聘考前冲刺题及答案
  9. Trident Topology
  10. iPhone微信浏览器某些元素点击无效