matlab 读取 通达信,Matlab读取通达信数据库需要学习那些方面的知识?

本帖最后由 qdwxzzy 于 2013-7-24 10:48 编辑

在论坛找了些帖子,然后去通达信的网站下载了数据,尝试读取sh000004.day的数据,代码如下

clear all;

fn='sh000004.day';

file_id=fopen(fn,'r');

raw_data = [1:8];

while feof(file_id) == 0

% 这就是大名顶顶的fread了,数据类型是int32,每次读入10个数

% raw_array每次都是10x1的矩阵,ele_count为读入的数的个数(正常情况下应为512)

[row_array, ele_count] = fread(file_id, 8, 'int32') ;

if ele_count < 8 % elecount < 8代表数据不够,已经到了文件的结尾

break ;

else

% 将10x1的row_array转置一下,变为1x512的矩阵

row_array = row_array'  ;

% 然后,将row_array追加到raw_data中

raw_data = [raw_data; row_array] ;

end

end

% 这里就是要把raw_data的第一行数据手工构造的那行数据给去掉,剩下的就都是文件中的数据了

raw_data(1,:)=[] ;

raw_data(:,2:5)/100

%创建stockdatainfo。.mat

stockdatainfo(:,1) = raw_data(:,1);                 %时间

stockdatainfo(:,2:5) = raw_data(:,2:5)/100;        %开盘价,最高价,最低价,收盘价

%stockdatainfo(:,6) = raw_data(:,7);                 %成交量

%stockdatainfo(:,7) = round(raw_data(:,6)/10); %成交额

zzy=[raw_data(:,1),raw_data(:,2),raw_data(:,3),raw_data(:,4),raw_data(:,5)]

% 关闭文件

fclose(file_id);

显示如下,感觉数据不对的样子,有懂的请指点下,比较奇怪的是如果我把开盘价那些都除以100,在显示数据的时候,所有的都变成了小数...

20130624      170756      170761      161778      162293

20130625      161196      162609      151973      161410

20130626      161319      162569      159559      161724

20130627      162131      163940      160462      160725

20130628      159587      163558      158626      162240

20130701      161166      164173      160678      164149

20130702      164158      166201      163216      166144

20130703      165579      166742      163587      166516

20130704      165601      168827      164712      167728

20130705      167464      168935      167041      167489

20130708      165154      165154      162189      162509

20130709      162163      163556      161405      163379

20130710      163122      167311      162848      167255

20130711      167392      172761      167309      171218

20130712      170958      171587      168762      169188

20130715      169319      171496      168940      170803

20130716      170654      171401      169312      171328

20130717      171017      172342      169110      169340

20130718      168846      169278      167008      167947

20130719      168055      169029      165189      165408

20130722      164438      167360      163887      167299

20130723      167721      171216      167422      170769

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值