• MATLAB——textscan


    %读取带变量名的数据集的程序,寇文红2007年5月24日于畅春园。
    %这是一个读取数据集的程序,目的是把如下带变量名的数据矩阵读进MATLAB。
    % <DTYYYYMMDD>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOL>
    % 20040615,212000,0.6987,0.6987,0.6986,0.6986,2
    % 20040615,212100,0.6987,0.6987,0.6987,0.6987,1
    % 20040615,212200,0.6988,0.6988,0.6987,0.6987,2
    %这样在处理比较大、多的数据集时,就不需要把文件打开去掉最上面一行了。
     
    tic
    clear
    %用如下方来来读取,把CollectOutput设为0,则MATLAB会把每一列的数字返回成一个数组。
    fid = fopen('E:v time deformationEURUSD.txt','r');  %打开要读取的数据集,'r'表示要读取打开文件,r是默认值。
    C_text = textscan(fid,'%s',7, 'delimiter',',');       %上句读取第一行的文字,即变量名。
    C_data = textscan(fid,'%f %f %f %f %f %f %f','delimiter',',','CollectOutput', 0);  
    %上句读取第2行以后的数据矩阵。
    %其中设定'delimiter',','是因为原文件里每两个数据之间是用逗号隔开的。
    %设定'CollectOutput'为默认值0,这样MATLAB把各列分别当作数组返回。
     
    fclose(fid);
    % C_text{:}                         %这一句返回数组C_text的全部内容(元素)。
    % C_text{1}                         %这一句返回数组C_text第1列的内容(元素)。
    % C_text(:)                         %这一列返回数组C_text的整体结构。
    % C_text(1)                         %这一句返回数组C_text第1列的结构:{8x1 cell}
    % C_data{:}                         %查看数组C_data的全部元素,以一列一列的形式返回。
    % C_data{1}                         %这一句返回数组C_fata第1列的内容(元素)。是一个列向量。
    % C_data{4}                         %这一句返回数组C_data的第4列的元素。是一个列向量。
    % C_data(:)                         %这一列返回数组C_data的整体结构。
    % C_data(1)                         %这一句返回数组C_data的第1列的结构。
     
    %现在可以把数组C_data的各列赋予新的名称。例如:
    date = C_data{1};
    time = C_data{2};
    open = C_data{3};
    high = C_data{4};
    low = C_data{5};
    close = C_data{6};                 
    vol = C_data{7};             %以上分别是日期,时点,开盘价,最高价,最低价,收盘价,交易次数。
     
    % 现在可以把上述各列数据组成一个新的数据矩阵,以便进一步分析之用。例如:
    EURUSD = [date,time,open,high,low,close,vol];

    % 也可以用EURUSD=cat(2,date,time,open,high,low,close,vol) 或EURUSD = horzcat(date,time,open,high,low,close,vol); 
    %注意:如果在前面C_data=textscan那一行里所设定的各列数据的性质不一样,例如前三列是整数(%d),后四列是%f(小数),
    %则上句合并成矩阵时,最后四列数据将被取整。因此数据性质必须一致才行。
    [rr,cc] = size(EURUSD)
    EURUSD(1:10,:)
     
    toc
     
     

    %%读取表头
    fid = fopen('D:work ask ask_dataase_s_t.csv');%%nidnopen返回的文件标识符
    %%%读取第一行
    title = textscan(fid,'%s %s %s %s %s %s %s %s %s %s %s %s %s %s',1,'delimiter',','); %%%%%n——double %s——str%%%注意读取位置数据所在位置
    fclose( fid );
    %%读取数据
    fid = fopen('D:work ask ask_dataase_s_7.csv');%%nidnopen返回的文件标识符
    base_d = textscan(fid,'%n %n %n %n %n %n %n %n %n %q %n %q %q %q','delimiter',',','HeaderLines',1);%%n——double %s——str
    fclose(fid );

     
     
  • 相关阅读:
    Hadoop eclipse插件使用过程中出现的问题
    hadoop eclipse插件下载 1.1.2版本
    Hbase 行键设计
    Js权限判断处理
    ASP.NET MVC中给所有的cshtml页面引用命名空间
    jquery实现的网页选项卡(拾忆)
    angularjs 请求后端接口请求了两次
    Entity Framework Code First关系映射约定
    Angularjs中link函数参数含义小节
    浅谈AngularJS中的$parse和$eval
  • 原文地址:https://www.cnblogs.com/awishfullyway/p/5717689.html
Copyright © 2020-2023  润新知