📄 matlab_ex1.txt
字号:
对数据进行预处理的程序
%从中国债券信息网下载到了2007年1月4日-2007年10月26日共197个交易日(其中20070219至23五日数据缺失)的银行间固定利率国债收益率数据集,
% 每天一个excel文件,每个文件包括当日的到期收益率、即期收益率、远期到期收益率、远期即期收益率数据;
% 希望用本程序把其中的到期收益率数据单独拿出来组成一个数据集以备分析之用。
% 另外还下载到了2007年1月4日-2007年10月26日共197个交易日(其中20070219至23五日数据缺失)的银行间固定利率国债到期收益率(标准期限)数据集,
% 希望用本程序把这些到期收益率(标准期限)数据拿出来组成一个数据集以备分析之用。
clear
tic
%%=============================第一步,整理到期收益率数据集========================
delete E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026\YTM_20070104-20071026.xls
delete E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026\YTM_20070104-20071026.txt
cd E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026; %%把该文件夹设置为当前工作目录;
dir *.xls; %%把当前工作目录下的xls文件都显示出来。它们就是下面要读取处理的文件。本句可以去掉。
filename=dir('*.xls'); %%把当前工作目录下的xls文件赋值给结构filename。它是个r*1的数组,r是dir列出的xls文档的数目。
filename.name %%此句依次显示出每个xls文件的名字。
%filename(3:8).name %%此句给出第3到8个文件到名字。
num=length(filename); %num表示数组filename的长度,即dir列出的xls文档的数目。
%%下面来读取数据集,因为数据集中含有字符串,因此不能用textread函数。
row=151;
YTM = zeros(row,num+1);
YTM(:,1)= xlsread(filename(1).name,'A2:A152');
% 上句读取第一个文件的第1列。不读第1行,因为第1行是文件名。这一行实际上是日期。
% 下面读取每日的到期收益率数据。
for i=1:num
YTM(:,i+1) = xlsread(filename(i).name,'B2:B152');
%读取每个数据集的第2列(即到期收益率)。不读第1行,因为第1行是文件名。
end
dlmwrite('E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026\YTM_20070104-20071026.txt',YTM,'delimiter','\t','precision',6,'newline','pc');
xlswrite('E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026\YTM_20070104-20071026.xls',YTM)
%%=============================第二步,整理到期收益率(标准期限)数据集========================
delete E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026_standard_maturity\ytm_20070104-20071026_standard.xls
delete E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026_standard_maturity\ytm_20070104-20071026_standard.txt
cd E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026_standard_maturity; %%把该文件夹设置为当前工作目录;
dir *.xls; %%把当前工作目录下的xls文件都显示出来。它们就是下面要读取处理的文件。本句可以去掉。
filename2=dir('*.xls'); %%把当前工作目录下的xls文件赋值给结构filename2。它是个r*1的数组,r是dir列出的xls文档的数目。
filename2.name %%此句依次显示出每个xls文件的名字。
%filename(3:8).name %%此句给出第3到8个文件到名字。
num2=length(filename2); %num2表示数组filename2的长度,即dir列出的xls文档的数目。
row2=14;
ytm_standard = zeros(row2,num2+1);
ytm_standard(:,1)= xlsread(filename2(1).name,'B2:B15');
% 上句读取第一个文件的第2列(不读第1行),因为第1行是文件名。这一行实际上是日期。
% 下面读取每日的到期收益率数据。
for j=1:num2
ytm_standard(:,j+1) = xlsread(filename2(j).name,'C2:C15');
%读取每个数据集的第3列(即标准期限的到期收益率)。不读第1行,因为第1行是文件名。
end
dlmwrite('E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026_standard_maturity\ytm_20070104-20071026_standard.txt',ytm_standard,'delimiter','\t','precision',6,'newline','pc');
xlswrite('E:\Hermite\YTM_interbank_fixed_rate_treasury_bond_20070104-20071026_standard_maturity\ytm_20070104-20071026_standard.xls',ytm_standard)
toc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -