matlab数据的读入和预处理
matlab数据的读入和预处理
第三讲 数据的读入和预处理
在金融研究以及金融理论的实际应用上,大量的金融数据是不可或缺的。金融理论提供了丰富的模型,但理论模型的实证检验需要大量的金融数据。金融模型的实际应用也需要大量金融数据来估计或标定其中的参数。比如:资本资产定价模型(CAPM)中β
值的估计;期权定价中标的资产收益率的波动率估计等都需要实际数据。MATLAB提供了在主窗口直接输入和利用xlsread、textread、fopen等函数直接读取数据两种方式。在主窗口直接输入数据对于少量数据是合适的,但金融领域的研究者和金融行业的金融理论应用人士经常面临大量的金融数据,利用MATLAB提供的内部函数直接读取数据是非常必要的。由于大部分的金融数据来自各种机构提供的数据库,这些数据库数据的输出大多会支持EXCEL和文本文件的输出格式。因此本节介绍如何利用MATLAB提供的xlsread和textread函数来读取*.xls和*.txt数据文件。
1.EXCEL数据文件的读取
利用MATLAB提供的函数xlsread可以方便地读取数据文件中的数值型数据,对于EXCEL文件中的字符型变量xlsread将不读取或以NaN(在MATLAB中NaN表示“不是一个数”)表示。其最简单的调用格式为在MATLAB命令窗口输入:x=xlsread('filename'),其中filename为在MATLAB自动搜索文件夹下的EXCEL文件名,文件filename中的数值型数据矩阵赋值给变量x。filename可以不带后缀.xls。
上证综合指数EXCEL文件
下面以上证综合指数为例,给读者介绍如何使用xlsread读取数据。图显示了上证综合指数的EXCEL文件中的部分数据(仅显示了其中前20行的数据),其中EXCEL文件中的第一列为日期,第二列为与第一列日期相应的上证综合指数。由于日期型数据在EXCEL中是可以与数值相互转化的,因而xlsread是可以读取日期型数据的。如果该EXCEL文件位于MATLAB自动搜索文件夹下,比如:D:\matlab\work\index.xls。则在MATLAB命令窗口输入:x=xlsread('index')
matlab数据的读入和预处理
后得到变量x,x为n行2列的矩阵,第一列为日期,第二列为指数。其中n与该文件中的数据长度一致,如数据包含1000天的上证综合指数,则n为1000。这里注意两点:(1)读出的数据赋值给变量x,x的第一列为日期,但在MATLAB
的输出格式中变成了数值型。比如图1.1中的第一个日期在EXCEL表中显示为1990-12-19,如果读者在EXCEL表中将其转换为数值型,则在EXCEL表中显示为33226。因此,在MATLAB读入该文件的时候该日期就变成了数值33226;(2)MATLAB提供了一个数值与表示日期的字符型变量相互转换的函数datenum(将日期转换为数值)和datestr(将数值转换为日期),但这种转换与EXCEL中数值和日期型变量的转换是有差异的。在MATLAB中以0000年1月1日作为起点,将这一天转换为数值1,相应的0000年1月2日就转换为2,而在EXCEL中以1900年1月1日为起点,将这一天转换为1。因此,前面的例子中的数据读入MATLAB,并赋值给变量x后,如果要将日期还原到正确的日期,则在MATLAB命令窗口下输入:x(:,1)=x(:,1)+datenum('30-Dec-1899');即可。当然也可以直接调用MATLAB内部函数x2mdate,在MATLAB命令窗口下输入:x(:,1)=x2mdate(x(:,1))进行转换。
综合以上例子,可以在MATLAB命令窗口下输入以下命令得到图1.2。%后面的内容表示对命令的解释和说明。
clear
x=xlsread('index');%读取EXCEL文件
x(:,1)=x(:,1)+datenum('30-Dec-1899');%将日期还原
h=figure;%生成空的图形
set(h,'color','w');%将图的背景颜色设定为白色
plot(x(:,1),x(:,2));%以x的第一列为横轴第二列为纵轴作图
datetick('x',23);%将横轴转成日期格式'mm/dd/yyyy'
xlabel('Date');%生成横坐标标记
title('Shanghai Composite ');%生成图形名称
上证综合指数走势
matlab数据的读入和预处理
初次使用xlsread读取数据文件的读者可能会出现打不开文件的情形。下面就读者可能经常碰到的一些问题做出说明。
有些读者在可能MATLAB命令窗口下输入
x=xlsread('index');后MATLAB提醒找不到该文件。读者可以在MATLAB中File菜单中选择Set Path进行路径设置,将EXCEL文件index.xls所在的文件夹置于搜索路径之下,然后点击Save进行保存即可。有些读者可能碰到无法读取数据的情形,MATLAB提醒文件不包含有效的EXCEL数据。这时,读者可以将EXCEL文件中说明性的字符,比如:对每一列变量做出说明的某些字符等整行删除即可。比如:在上海大智慧投资咨询公司提供的大智慧平台下载数据得到EXCEL文件数据如图所示,则读取文件时就会出现这样的错误。这时可以将文件中的第一行和第二行直接整行删除就可以了。通常在这样处理后在EXCEL数据中某些列中仍夹杂着一些空格,这时MATLAB读入时将其以NaN代替。也有些读者在MATLAB命令窗口下输入x=xlsread('filename');后出现这样的情形,即得到的变量x的列数比EXCEL文件中数据的列数少,这可能是EXCEL数据文件中的第一列或前面的几列数据为字符型,MATLAB在读入数据时忽略了这些列。
大智慧下载数据
使用xlsread读取数据文件有两个明显的缺点。一是xlsread不能读取字符型变量,因此要读取某些包含字符型变量的文件就不能使用xlsread。另外EXCEL文件中的数据长度是有限定的,EXCEL2000单个工作表的最大行数为65536,每一行最大列数为256列。但有时候要处理的金融数据量会超出这个范围,这时候不得不将数据分拆成几个EXCEL文件后分别用xlsread读取。而MATLAB提供的textread函数可以很好地解决以上两个问题。
2.文本数据文件的读取
对于*.txt、*.csv等类型的数据文件,如果知道数据文件中每一列数据的类型,即字符型、数值型等。则可以使用MATLAB提供的textread函数方便地进行读取。对于textread函数的详细了解可以在MATLAB命令窗口下输入help textread或doc textread来了解。
下面以位于MATLAB自动搜索文件夹下的上证综合指数数据文件,比如:
matlab数据的读入和预处理
D:\matlab\work\000001.txt,为例来进行解释如何调用textread。图显示了该文件的部分数据,该数据文件包含7列的数据,分别为时间、开盘价、最高价、最低价、收盘价、成交量和成交额,数据包含了了1990年12月19日到2006年9月27日上证综合指数行情。在MATLAB命令窗口下输入以下命令:
[a,b,c,d,e,f,g]=textread('000001.txt','%s%f%f%f%f%f%f','headerlines',
1);
其中上述命令中的输出变量a,b,c,d,e,f,g分别表示时间、开盘价、最高价、最低价、收盘价、成交量和成交额列向量,a为表示时间的字符型变量。textread函数的输入部分中,'000001.txt'表示文件名;%s表示以字符型方式读入变量;%f表示以浮点数值型方式读入变量;'headerlines',1表示文件的第一行为标题,不需要读入。注意:textread函数的输入部分中'%s%f%f%f%f%f%f'是与输出a,b,c,d,e,f,g一一对应的;另外这里文件名的后缀.txt不能省略,否则MATLAB会给出不能找到该文件的提醒。这个例子有点特殊,第一列的时间数据也可以以浮点数值型方式读入。在MATLAB命令窗口下输入以下命令:
[a,b,c,d,e,f,g]=textread('000001.txt','%f%f%f%f%f%f%f','headerlines',
1);
但这时读出的日期变成了数值。比如:2006年9月27日就变成了数值 …… 此处隐藏:5902字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [初中教育]婚姻家庭法学教学教案
- [初中教育]浅谈小学语文教学中的创新教育
- [初中教育]中华人民共和国侵权责任法2009
- [初中教育]2016-2022年中国薄膜太阳能电池行业发
- [初中教育]多级轻型井点降水的应用
- [初中教育]外语教学法流派介绍和简评
- [初中教育]实验一、典型环节及其阶跃响应
- [初中教育]内蒙古2012-2013学年度国家奖学金获奖
- [初中教育]移动通信营销渠道管理探讨
- [初中教育]初三化学第一学期第一第二章基础知识点
- [初中教育]一天的食物教学设计
- [初中教育]光导照明系统的基本结构及工作原理
- [初中教育]长春市十一高、东北师范大学附属中学、
- [初中教育]“十三五”规划重点-配重式装卸车项目
- [初中教育]领导方法和领导艺术
- [初中教育]第三章 植物病虫草鼠害诊断与防治基
- [初中教育]2019届九年级语文上册 第二单元 6纪念
- [初中教育]甲级单位编制水豆腐项目可行性报告(立
- [初中教育]Ch8-1补充 09101数据库系统原理及应用-
- [初中教育]2017-2023年中国吊装设备行业市场分析
- 制作毕业纪念册需要哪些材料
- 2015-2016学年高二化学苏教版选修4课件
- 哈佛管理导师-创建商业案例
- 职场交际中的谈吐礼仪知识与职场会议接
- 中国糕点及面包行业发展现状与竞争战略
- 沂河“12·7”洪水茶山拦河坝
- 管道水流量计算公式
- 4-2发电机火灾事故处置方案
- 数字信号处理实验五
- 2009年经济师(中级)金融专业知识全真试
- 历史街区保护规划--04历史文化遗产保护
- 宁夏回族自治区中小学职称评价标准
- 评先评优测评表
- 圆的切线证明及线段长求解在在中考中的
- 【解析版】2015年江苏省南京外国语学校
- 人教版八年级上册科学第一章习题精华
- 责任心与执行力
- SA8000社会责任管理体系标准培训
- IgA肾病的饮食应注意
- 杭州市建设工程文件归档整理方案(试行)




