⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 day2mat.m

📁 用matlab读取大智慧数据下载的.day文件
💻 M
字号:
% deal data from specified data file
clear ;
%上海日线数据目录: D:\dzh\DATA\SHase\Day
%深圳日线数据目录: D:\dzh\DATA\SZnse\Day
data_fname = 'D:\dzh\DATA\SHase\Day\601939.day' ; % 这里是文件名
%jump_distance = 2048 ;    % 这里是跳过的字节数
% 打开方式为二进制打开,其实'r'就行,matlab是默认二进制形式打开文件的
file_id = fopen(data_fname, 'rb');
% 从文件开始跳过jump_distance个字节
%fseek(file_id, jump_distance, 'bof');
% 先手工构造一个1x10大小的矩阵
raw_data = [1:1:10] ;
while feof(file_id) == 0
    % 这就是大名顶顶的fread了,数据类型是int32,每次读入10个数
    % raw_array每次都是10x1的矩阵,ele_count为读入的数的个数(正常情况下应为512)
    [row_array, ele_count] = fread(file_id, 10, 'int32') ;
    if ele_count < 10 % elecount < 10代表数据不够,已经到了文件的结尾
        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)/1000;        %开盘价,最高价,最低价,收盘价
stockdatainfo(:,6) = raw_data(:,7);                 %成交量
stockdatainfo(:,7) = round(raw_data(:,6)/10);       %成交额
save ('D:\dzh\DATA\SHase\mat\601939.mat','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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -