【MATLAB】关于matlab的table数据使用
前言
上一次的训练中一道数据处理的题目,五千来号数据,作为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数据使用相关推荐
- 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法
关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...
- matlab cell转double_MATLAB处理数据,掌握这7个小技巧就够了
最近一段时间,工作上花了不少时间用MATLAB处理工厂下线的数据,数据庞大不说,复杂度也高,各种推算和统计 所以今天我打算总结一下,平时我在用MATLAB做数据分析时常用的几个小技巧 正好全国大学生数 ...
- matlab用socket线程发送数据,使用Python Twisted和Autobahn从Matlab通过WebSocket发送JSON数据...
我正在尝试创建一个从Matlab到WebSocket流JSON帧的连接.我用下面的代码测试了我的python安装和twisted.在 工作实例 Matlab代码 示例驱动程序代码,它使用JSONlab ...
- MATLAB快速拟合二组数据
MATLAB快速拟合二组数据 第一步:打开MATLAB,点击主页中的新建变量,点击修改变量名为a,然后复制数据进去,接着新建变量b,复制数据进去. 第二步:点击上端的APP,选择第一个图标 第三步:选 ...
- 美赛整理之Matlab读取全球海洋温度数据并显示干货
Matlab读取全球海洋温度数据并显示干货 Matlab读取全球海洋温度数据并显示干货 Matlab读取全球海洋温度数据并显示干货 一.nc文件的读取 二.画出从1981到2000年的全球温度海洋变化 ...
- matlab数据变成一列数据,matlab读取excel表格列数据-matlab导入excel后,怎么把数据提取成一列?...
怎么用matlab读取excel表格中的一列十六进制数据? x=xlsread('oillack.xls','sheet1','a1:a73') excel文件名是oillack.xls,sheet1 ...
- rls算法matlab实现,第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现.PDF
第5章基于RLS算法的数据预测与MATLAB实现MATLAB实现 第 5章 基于 RLS算法的数据预测与 第5章 基于RLS算法的数据预测与MATLAB实现 MATLAB实现 RLS 1795 递归最 ...
- matlab 矩阵与数比较,MATLAB 对矩阵中的数据进行大小比较
用matlab对矩阵进行高斯消元 %求解例题2.1%高斯法求解线性方程组Ax=b%A为输入矩阵系数,b为方程组右端系数%方程组的解保存在x变量中%先输入方程系数A=[1 2 3;2 7 5;1& ...
- matlab导入表格画图,matlab从excel表格导入数据画图-在matlab上如何导入excel表格然后画图...
如何将excel表格中大量数据导入matlab中并作图 1.matlab,点击主页下面的数据导入,你可以导入excel数据,这里导自己的huitushuju文件. 2.单击"打开" ...
- matlab批量导入excel表格数据,matlab导入excel表格数据-如何用matlab读取多个excel表格数据,将每个表格数......
如何用matlab读取多个excel表格数据,将每个表格数... 一xlsread()函数,比import简单的多,具体语句:A = xlsread('yourfilename.xls')望高手支招! ...
最新文章
- java对象--内部类
- k8s, etcd 多节点集群部署问题排查记录
- hadoop学习-mahout-Bayes分类算法示例程序
- 恕我直言,IDEA的Debug,你可能只用了10%
- html 星空效果,使用css实现星空效果!
- Jmeter===Jmeter中使用CSV Data Set Config参数化不重复数据执行N遍(转)
- 20155337 《网络对抗》 Exp2 后门原理与实践
- 关于GPU数据库的未来
- 【智慧工厂】一篇让你搞明白ERP、SAP、MES的文章
- PPT插入文本框的方法技巧
- android 转发朋友圈,微信怎么转发朋友圈 转发朋友圈方法详细教程
- BZOJ 2339 【HNOI2011】 卡农
- windows系统PrintScreen键截屏
- Django-rq任务失败自动重试
- 否则在Python中使用for / while语句
- 机器学习作业(第十八次课堂作业)
- 网站建设制作需要多少钱呢?费用是多少?
- 手机拍摄证件照可以用什么软件
- 蓝桥杯JAVA-32.二维数组(矩阵)实现旋转模板(JAVA实现)
- 阿里云视频点播服务(上传,删除,获取播放地址,获取播放凭证)
热门文章
- javascript实用例子
- 编程过程中常见的内存开辟和释放问题
- 铷标准的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 引领半开放主动降噪新技术,华为全新无线蓝牙耳机FreeBuds 4发布
- 【MATLAB编程】求斐波那契数列的第n项与前n项和
- python提取txt关键内容_python爬取关键字所在行并输出到txt
- flink Could not forward element to next operator
- 2022衢州江山农商银行春季招聘考前冲刺题及答案
- Trident Topology
- iPhone微信浏览器某些元素点击无效