zoukankan      html  css  js  c++  java
  • matlab中读取txt数据文件(转)

    根据txt文档不同种类介绍不同的读取数据方法

    一、纯数据文件(没有字母和中文,纯数字)

    对于这种txt文档,从matalb中读取就简单多了

    例如test.txt文件,内容为“17.901 -1.1111 33.045
                                              17.891 -1.1286 33.045
                                              17.884 -1.1345 33.045”

    可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。

    二、中英文和数据如test1.txt


    “你好
    欢迎来到
    振动论坛
    vib.hit.edu.cn
    1 11 111 1111
    2 22 222 2222
    3 33 333 3333
    4 44 444 4444
    5 55 555 5555”
    这样的文件怎么读入数据呢?
    方法有多种,现举两个比较简单实用的。


    方法一:
    file/import data....../next/finish 
    >> whos
    Name           Size                   Bytes Class

    data           5x4                      160 double array
    textdata       4x1                      300 cell array

    Grand total is 54 elements using 460 bytes

    >> data

    data =

               1          11         111        1111
               2          22         222        2222
               3          33         333        3333
               4          44         444        4444
               5          55         555        5555

    >> textdata

    textdata =

        '你好'
        '欢迎来到'
        '振动论坛'
        'vib.hit.edu.cn'


    方法二:
    [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
    说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。
    这里%s的个数和[a1,a2,a3,a4]对应。
    >> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)

    a1 =

        '1'
        '2'
        '3'
        '4'
        '5'


    a2 =

        '11'
        '22'
        '33'
        '44'
        '55'


    a3 =

        '111'
        '222'
        '333'
        '444'
        '555'


    a4 =

        '1111'
        '2222'
        '3333'
        '4444'
        '5555'
    因以字符串的形式读入,所以有''。
    ————————————————————————————————

    三、中文 数据 英文 混乱如test.txt

    你好
    1 11 111 1111
    欢迎来到
    2 22 222 2222
    振动论坛
    3 33 333 3333
    vib.hit.edu.cn
    4 44 444 4444
    5 55 555 5555

    说明:这种内容格式的文件用上面的方法是不行的。

    以下是由chinamaker编写的一种方法:


    fidin=fopen('test.txt');                               % 打开test2.txt文件             
    fidout=fopen('mkmatlab.txt','w');                       % 创建MKMATLAB.txt文件
    while ~feof(fidin)                                      % 判断是否为文件末尾               
        tline=fgetl(fidin);                                 % 从文件读行   
        if double(tline(1))>=48&&double(tline(1))<=57       % 判断首字符是否是数值
           fprintf(fidout,'%s ',tline);                  % 如果是数字行,把此行数据写入文件MKMATLAB.txt
           continue                                         % 如果是非数字继续下一次循环
        end
    end
    fclose(fidout);
    MK=importdata('MKMATLAB.txt');      % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来 
    >> MK

    MK =

               1          11         111        1111
               2          22         222        2222
               3          33         333        3333
               4          44         444        4444
               5          55         555        5555

  • 相关阅读:
    [干货,阅后进BAT不是梦]面试心得与总结---BAT、网易、蘑菇街
    [干货,阅后进BAT不是梦]面试心得与总结---BAT、网易、蘑菇街
    JSP九大内置对象,七大动作,三大指令
    JSP九大内置对象,七大动作,三大指令
    Java异常处理
    Java异常处理
    java和C和C++关系
    c++中指针常量,常指针,指向常量的常指针区分
    c++中指针常量,常指针,指向常量的常指针区分
    Method and apparatus for verification of coherence for shared cache components in a system verification environment
  • 原文地址:https://www.cnblogs.com/feitian629/p/3305461.html
Copyright © 2011-2022 走看看