zoukankan      html  css  js  c++  java
  • MATLAB textread函数

    实际应用中经常要读取txt文件,这个时候就需要用到强大的textread函数。
    它的基本语法是:
    [A,B,C,...] = textread(filename,format)
    [A,B,C,...] = textread(filename,format,N)
    其中
    filename就是文件名, format就是要读取的格式,A,B,C就是从文件中读取到的数据。
    中括号里面变量的个数必须和format中定义的个数相同。 如果每N行相同格式的数据,可采用
    [A,B,C,...] = textread(filename,format,N)的语法,读取N次。
    举例如下:
    例子1:myfile.txt 中的内容如下:
    1 2 3 4
    5 6 7 8
    9 10 11 12
    相应的语句为:
    filename = '.myfile.txt';
    [data1,data2,data3,data4]=textread(filename,'%n%n%n%n');
    或者为
    filename = '.myfile.txt';
    [data1,data2,data3,data4]=textread(filename,'%n%n%n%n',3);


    例子2:myfile.txt 中的内容如下:
    1, 2, 3, 4
    5, 6, 7, 8
    9, 10, 11, 12
    相应的语句为:
    filename = '.myfile.txt';
    [data1,data2,data3,data4]=textread(filename,'%n%n%n%n',
    'delimiter'',');
    这里
    delimiter指出分隔符,读数据的时候会自动跳过分隔符。


    例子3:myfile.txt 中的内容如下:
    % this a comment
    1, 2, 3, 4
    5, 6, 7, 8
    9, 10, 11, 12
    相应的语句为:
    filename = '.myfile.txt';
    [data1,data2,data3,data4]=textread(filename,'%n%n%n%n',
    'delimiter'',','headerlines', 1);
    这里告诉textread跳过一开始的1行,1可以替换为任意你要跳过的行数。

    例子4:
    myfile.txt 中的内容如下:

    Sally Level1 12.34 45 Yes

    相应语句为:

    filename = '.myfile.txt';

    [names, types, x, y, answer] = textread(filename , '%s %s %f %d %s', 1)

    4.1如果要忽略12.34这个浮点数。
    [names, types, y, answer] = textread(filename , '%s %s %*f %d %s', 1) 

    %*f 告诉textread跳过一个浮点数。
    4.2 如果要忽略Level,指读取后面的数字,

    [names, levelnum, x, y, answer] = textread(filename , ... '%s Level%d %f %d %s', 1)


    例子5:myfile.txt 中的内容如下
    1,2,3,4,,6 
    7,8,9,,11,12

    想用nan替代为空的部分。
    语句如下:
    data = textread('myfile.txt', 'delimiter', ',', 'emptyvalue', NaN);


    例子6: myfile.txt 中的内容如下  
     Sally    Type1 12.34 45 Yes
     Joe      Type2 23.54 60 No
     Bill     Type1 34.90 12 No

    如果只想读第一列,其余的跳过
    filename = '.myfile.txt';
    [names]=textread(filename,'%s%*[^ ]')

     %[^...] - reads characters not matching characters between the brackets until first matching character  
    %[^ ] 就是一直读到行尾。
    %*[^ ] 就是从当前直接跳到行尾。 
    可对比
    [names,rest]=textread(filename,'%s%[^ ]') 


    例子7: myfile.txt 中的内容如下                  
    Location;date;discharge 
    Lobith;1989-01-01;00:00;2801
    Lobith;1989-01-02;00:00;2619

    语法如下:
    [Location,... % 1
        yyyy              ,... % 2a datestring year
        mm                ,... % 2b datestring month
        dd                ,... % 2c datestring day
        HH                ,... % 3a timestring hour
        MM                ,... % 3b timestring minute
        discharge] =  ...
        textread(filename,'%s%f-%f-%f%f:%f%f',...
            'headerlines',1,...
            'delimiter'  ,';');

    注意:

    textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。textread读取某个文件后,下次再用textread读取这个文件时,还是会从文件头开始读取。


  • 相关阅读:
    autocomplete自动完成搜索提示仿google提示效果
    实现子元素相对于父元素左右居中
    javascript 事件知识集锦
    让 IE9 以下的浏览器支持 Media Queries
    「2013124」Cadence ic5141 installation on CentOS 5.5 x86_64 (limited to personal use)
    「2013420」SciPy, Numerical Python, matplotlib, Enthought Canopy Express
    「2013324」ClipSync, Youdao Note, GNote
    「2013124」XDMCP Configuration for Remote Access to Linux Desktop
    「2013115」Pomodoro, Convert Multiple CD ISO to One DVD ISO HowTo.
    「2013123」CentOS 5.5 x86_64 Installation and Configuration (for Univ. Labs)
  • 原文地址:https://www.cnblogs.com/dushikang/p/8514028.html
Copyright © 2011-2022 走看看