QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1096|回复: 1
打印 上一主题 下一主题

matlab批量转换日线数据

[复制链接]
字体大小: 正常 放大

3503

主题

538

听众

5990

积分

  • TA的每日心情
    开心
    2017-2-7 15:12
  • 签到天数: 691 天

    [LV.9]以坛为家II

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2013年国赛赛前培训

    群组2014年地区赛数学建模

    群组数学中国第二期SAS培训

    群组物联网工程师考试

    群组2013年美赛优秀论文解

    跳转到指定楼层
    1#
    发表于 2013-7-18 14:04 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    % deal data from specified data file
    clear ;
    clc

    file1=dir('D:\new_yhzq_v21\vipdoc\sz\lday\sz00*.day');
    a1=struct2cell(file1);
    z1=a1(1,:)';
    file2=dir('D:\new_yhzq_v21\vipdoc\sz\lday\sz300*.day');
    a2=struct2cell(file2);
    z2=a2(1,:)';
    NameString=[z1;z2];
    len=length(NameString);
    for i=1:len

    data_fname=strcat('D:\new_yhzq_v21\vipdoc\sz\lday\',NameString(i)) ; % 这里是文件名
    %jump_distance = 2048 ;    % 这里是跳过的字节数
    % 打开方式为二进制打开,其实'r'就行,matlab是默认二进制形式打开文件的
    data_fname=data_fname{1};
    file_id = fopen(data_fname, 'rb');
    % 从文件开始跳过jump_distance个字节
    %fseek(file_id, jump_distance, 'bof');
    % 先手工构造一个1x10大小的矩阵
    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
    % get off the first line [1:1:10]
    % 这里就是要把raw_data的第一行数据手工构造的那行数据给去掉,剩下的就都是文件中的数据了
    raw_data(1,:)=[] ;
    %创建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); %成交额

    savestring=strcat('D:\用户目录\Documents\MATLAB\sz\',NameString(i));
    name=savestring{1}(1:length(savestring{1})-4);
    save (name,'stockdatainfo');  

    % 关闭文件
    fclose(file_id);
    % delete other usless vars
    % 这里是把用过的变量都删除掉
    clear data_fname file_id fid ele_count i m n raw_data row_array ans stockdatainfo;
    end
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

    3503

    主题

    538

    听众

    5990

    积分

  • TA的每日心情
    开心
    2017-2-7 15:12
  • 签到天数: 691 天

    [LV.9]以坛为家II

    社区QQ达人 元老勋章 发帖功臣 新人进步奖 优秀斑竹奖 金点子奖 原创写作奖 最具活力勋章 助人为乐奖 风雨历程奖

    群组2013年国赛赛前培训

    群组2014年地区赛数学建模

    群组数学中国第二期SAS培训

    群组物联网工程师考试

    群组2013年美赛优秀论文解

    在别人的基础上加工过来的,大家共同探讨。
    抛砖引玉,有能读取分时数据的不妨分享下,谢谢。
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-26 06:00 , Processed in 0.369017 second(s), 59 queries .

    回顶部